javascript 如果使用 jquery 自动完成,功能不会触发 onchange

javascript function not triggered onchange if jquery autocomplete used

我有以下 jquery 自动完成功能,效果很好。

文本框更改后,它会使用 onchange="fieldchanged('1')

运行 javascript 函数

如果我手动输入文本(不要 select 它来自自动完成列表),onchange 运行良好。

但是如果我 select 自动完成列表中的任何值,则不会触发 onchange="fieldchanged('1');"

有什么问题吗?

ASPX 文本框:

<asp:TextBox ID="txtF10_D" runat="server" CssClass="desc"  onchange="fieldchanged('4');" ></asp:TextBox>

自动完成JQUERY:

 var desc_options = ["Desc 1", "Desc 2", "Desc 3", "Desc 4", "Desc 5", "Desc 6", "Desc 7"];
 $('.desc').each(function () {
 var txt = $(this);
 txt.autocomplete({
 delay: 0,
 source: desc_options,                            
 });
});

JAVASCRIPT 功能:

function fieldchanged(strCode) {                   
                    if (strCode == "1") {
                        var text = document.getElementById('txtOC7_1');
                        text.value = '0';
                    } else if (strCode == "2") {
                        var text = document.getElementById('txtOC8_1'); 
                        text.value = 'Y';
                    } else if (strCode == "3") {
                        var text = document.getElementById('txtOC9_1');
                        text.value = 'Y';
                    } else {

                    }
                }

您需要监听自动完成的更改事件。

$("#CompanyList").autocomplete({ 
      change: function() {
          $(this).trigger("change");
      }
   });

试试这个,这里是 http://api.jqueryui.com/autocomplete/ 参考。

$( "#CompanyList" ).on( "autocompletechange", function( event, ui ) {
  alert('changed');
});