【问题标题】:textbox change event doesn't fire using append text using another method使用另一种方法附加文本不会触发文本框更改事件
【发布时间】:2015-08-07 05:29:16
【问题描述】:

当使用更改事件更改文本框的值时,我需要触发一个事件。

html

'<select onchange="ChooseContact(this)">
 <option value='1'>1</option>
 <option value='2'>2</option></select>
 <input id="friendName">'

JS

function ChooseContact(data) {

document.getElementById ("friendName").value = data.value;

}

 $("#friendName").change(function(){
   alert("The text has been.");
  });

$('#friendName').bind('input propertychange', function() {
       alert("The text has been changed.");
});

在这里,我尝试将选择选项值更改为附加到文本。它会正常工作。

文本框更改事件未触发也尝试使用input propertychange

如果有人知道原因,请在这里分享。

I tried

【问题讨论】:

    标签: javascript jquery textbox onchange


    【解决方案1】:

    由于您以编程方式更改值,因此更改事件不会自动触发,您可以手动触发它

    function ChooseContact(data) {
      $('#friendName').val(data.value).change()
    }
    
    $("#friendName").change(function() {
      alert("The text has been.");
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <select onchange="ChooseContact(this)">
      <option value='1'>1</option>
      <option value='2'>2</option>
    </select>
    <input id="friendName">

    【讨论】:

      【解决方案2】:

      您可以使用以下方式手动触发事件:

       $("#friendName").change(function(){
             alert("The text has been.");
             $('#friendName').trigger('propertychange');
        });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-30
        • 2010-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-04
        相关资源
        最近更新 更多