Как лучше всего включить следующее поле ввода при изменении другого поля ввода - PullRequest
0 голосов
/ 09 июля 2020

У меня есть что-то похожее на это:

<input id="1" type="text"></input>
<input id="2" type="text" disabled></input>

Когда я изменяю содержимое id = "1", я хочу включить id = "2". Я могу заставить его работать в этом формате, однако мне нужно, чтобы он был в специальной функции c вместо общего c события ввода onchange, потому что эта страница имеет множество входов:

$(document).ready(function(){
 $("input").change(function(){
  $(this).next().prop("disabled", false); // Element(s) are now enabled.
 });
});

Я считаю, что моя проблема заключается в передаче «этой» информации, чтобы можно было изменить следующий элемент. Я пробовал приведенные ниже строки кода, но не могу заставить их работать. Игнорируйте предупреждения, которые я разместил там, я просто пытался увидеть, какая информация была передана. Кроме того, я также передаю строку с событием onchange.

$(el.id).next().prop("disabled", false);

function myFunction (str, el) {
 var newId = el.id;
 alert(newId);
 $(newId).next().prop("disabled", false);
}

function myFunction (str, id) {
 $(id).next().prop("disabled", false);
}

Обновленный код:

  function Update(str, el){
  var xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function()
     {
      if (xmlhttp.readyState==4) {
        if (xmlhttp.status==200) {
                    var newId = el.id;
                    alert(newId);
                    $(newId).next().prop("disabled", false);
        }
        else {

        }
      }
     };
    var Info = str;
    var queryString = Info;
    xmlhttp.open("POST","Reduced.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(queryString);
    }

1 Ответ

0 голосов
/ 09 июля 2020

Используйте вместо этого прослушиватель событий keyup.

$(document).ready(function(){
 $("input[type=text]").keyup(function(){
  $(this).next().prop("disabled", false); // Element(s) are now enabled.
 });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text">
<input type="text" disabled>
<input type="text" disabled>
<input type="text" disabled>
<input type="text" disabled>
...