【问题标题】:how can detect every change on input in jQuery如何检测jQuery中输入的每一个变化
【发布时间】:2015-09-20 09:08:46
【问题描述】:

我有 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 的每一个变化,谢谢

【问题讨论】:

    标签: jquery input onchange


    【解决方案1】:

    你可以试试这个:

    $('#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

    【讨论】:

    • 太好了,非常感谢@Beginner,.trigger('change');是我的解决方案
    【解决方案2】:

    试试这个:把你的整个代码放在input1输入事件中。如果你想用旧的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"/>

    【讨论】:

    • 谢谢,我在 input2 中显示 2012 或 2013 没有问题,我无法检测 input2 何时从 2012 年变为 2013 年或变为空值
    猜你喜欢
    • 2011-09-21
    • 1970-01-01
    • 2020-02-20
    • 2012-09-29
    • 2020-05-30
    • 2015-03-30
    • 2016-10-04
    • 2011-09-25
    相关资源
    最近更新 更多