如何检测 jQuery 中输入的每个变化

how can detect every change on input in jQuery

我有 2 个输入,我将一些值从 input1 发送到 input2 我想检测 input2 何时更改。

HTML

<input type="text" id="input1"/>
<input type="text" readonly id="input2"/>

JS

$('#input1').on("change" , function() {
  if($("#input1").val() == "550") {
     $("#input2").val("2012")
  }
  else if($("#input1").val() == "650") {
     $("#input2").val("2013")
  }
  else {
     $("#input2").val("")
  }
})

现在我想检测 input2 何时有值以及何时为空

此代码不起作用,因为当输入发生变化时,键盘等发生了变化

$('#input2').on('input',function(e){
     alert('Changed!')
});

我需要这样的代码来检测 input2 中的每一个变化,谢谢

尝试 this:put 你的整个代码 input1 输入 event.If 你想用旧的 input2 值复制然后在给它分配新值之前检查它。

$('#input1').on('blur',function(e){
   var values="";
     if($(this).val() == 550) {
          values="2012";
}
else if($(this).val() == 650) {
   values="2013";
}
else {
   values="";
}

if($("#input2").val() == values){
alert("no change");
}else{
$("#input2").val(values);
alert("changed");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input1"/>
<input type="text" readonly id="input2"/>

你可以试试这个:

$('#input1')
    .on('keyup input', function(){
        var value = $(this).val();
        var $input2 = $('#input2');
        switch(value) {
            case "550":
                $input2
                    .val("2012");
                $input2
                    .trigger('change');
                break;
            case "650":
                $input2
                    .val("2013");
                $input2
                    .trigger('change');
                break;
            default:
                $input2
                    .val("");
        }
    });
$('#input2')
    .on('change', function(){
        alert($(this).val());
    });

这里是 FIDDLE.