繁体   English   中英

jQuery .change函数无法通过javascript工作

[英]Jquery .change function is not working through javascript

当我通过Javascript更改值时,jquery中的.change调用不起作用。

例如:

 $(document).ready(function () {
     $(function () {
         $("select#product").change(function () {
             if (document.all("fatcaSearchDO.bankId").disabled.value = true) {
                 fnFieldEnableClass(document.all("fatcaSearchDO.bankId"));
             }
             $.ajax({
                 type: 'GET',
                 url: 'ViewHistoryDataAction.do',
                 data: {
                     product: $(this).val()
                 },
                 dataType: 'JSON',
                 cache: false,
                 success: function (j) {
                     var options = '';
                     for (var k = 0; k < j.length; k++) {
                         options += '<option value="' + j[k] + '">' + j[k] + '</option>';
                     }
                     $("select#BankID").html(options);
                 }
             });
         });
     });
 });




<html:select name="ViewHistoryForm" property="fatcaSearchDO.bankId" styleClass="login-textbox" onchange="fnGlobalChange();" onclick="checkRadio('1')" onfocus = "checkRadio('1')" styleId="BankID" style="width=250">

<html:select name="ViewHistoryForm" property="fatcaSearchDO.product" styleClass="login-textbox" onchange="fnGlobalChange();" onclick="checkRadio('1')" onfocus = "checkRadio('1')" styleId="product" style="width=250">

在这里,当我尝试更改“产品”的下拉菜单时,将填充其调用操作以及相应的银行ID值。 现在,例如,当我尝试通过javascript更改“产品”的值时

<input type="button" onclick="changeProd()">

function changeProd(){
    document.all("fatcaSearchDO.product").value='CC';

}

更改功能不起作用。

当您通过javascript更改输入字段的值时,将不会触发change事件。

您需要手动触发更改事件

喜欢

$("#fatcaSearchDO.product").trigger('change')

例如:

function changeProd(){
    $("#fatcaSearchDO.product").val('CC').trigger('change');
}
$(document).ready(function() {
  // Handler for .ready() called.
});

相当于调用:

$(function() {
     // Handler for .ready() called.
});

请使用其中一个。

为什么不将change内的匿名函数变成单独定义的函数,因此您可以像这样进行操作:

function changeHandler(element) {
  // code code code
  value = element.val();
}

$(something).change(function() {
  changeHandler($(this));
});

// then when changing value with JS
var element = ... // select the element with javascript here
element.value='CC';
changeHandler($(element)); // just call the function everytime the value gets changed

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM