Как исправить "городское поле не принимает значения"? - PullRequest
1 голос
/ 16 апреля 2020

Я работаю над расширением, которое автоматически заполняет форму на странице информации о доставке Ali Express.

Мне удалось заполнить данные во всех полях, кроме поля города. Существует поле провинции, которое зависит от раскрывающегося списка страны и поля города, если в поле провинции есть раскрывающийся список, и при выборе пользователем провинции, в которой есть доступные города, появляется раскрывающийся список для городов. Для города появляется другой мудрый ввод, такой же, как и для города.

Теперь проблема в том, что если город и провинция введены одновременно, тогда присваивается значение провинции, но не городу, и если я не заполняю значение в провинции, используя js, тогда оно отлично работает для города.

Я попытался отправить события, добавить скрипт в теле и использовать другое событие, но ничего не получилось.

Примечание. Есть два скрытых поля с одинаковыми идентификаторами, такими как провинция и город.

if (key == "first_name") {
  $("#contactPerson").focus();
  document.execCommand("insertText", false,
    ae_billing_details[key] + ae_billing_details["last_name"]);
}
if (key == "phone") {
  $("#mobileNo").focus();
  document.execCommand("insertText", false, ae_billing_details[key]);
}
if (key == "address_1") {
  $("#address").focus();
  document.execCommand("insertText", false, ae_billing_details[key]);
}
if (key == "address_2") {
  $("#address2").focus();
  document.execCommand("insertText", false, ae_billing_details[key]);
}
if (key == "state") {
  if ($(".addr-select").has("#province")) {
    $("#province").focus();
    document.execCommand("insertText", false, ae_billing_details[key]);
  }
}
if (key == "postcode") {
  $("#zip").focus();
  document.execCommand("insertText", false, ae_billing_details[key]);
//   var evt = document.createEvent("Events");
//   evt.initEvent("keypress", true, true);
//   evt.view = window;
//   evt.altKey = false;
//   evt.ctrlKey = false;
//   evt.shiftKey = false;
//   evt.metaKey = false;
//   evt.keyCode = 0;
//   evt.charCode = "a";
//   .dispatchEvent(evt);
}
if (key == "city") {
  if ($(".addr-select").has("#city")) {
    $("#city").focus();

    document.execCommand("insertText", false, ae_billing_details[key]);


    $("body").append(
      "<script>document.getElementById('city').value = 'My value';</script>"
    );
    //$( "#city" ).text("gggg");
    //$("#city").attr("value","ok");

    //var element = document.getElementById("#city" );
    // element.parentNode.removeChild(element);
    // var value = $("#city").val();
    // $("#city").focus().val("").val(value);

    //$("#city").val("Mush");
  }
}

1 Ответ

0 голосов
/ 16 апреля 2020

Проблема выявлена ​​и решена. Проблема была с последовательностью ключей. Это было решено перемещением кода из для l oop, потому что для (var key in obj) выборка в последовательности клавиш вызывала проблему, но устанавливала состояние в конце, поэтому фокус направлялся в провинцию, а значение не присваивалось полю города .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...