.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">
在这里,当我尝试更改&#34;产品&#34;它的调用操作和相应的银行ID值已填充。现在,当我试图改变&#34;产品&#34;的价值时通过javascript,例如
<input type="button" onclick="changeProd()">
function changeProd(){
document.all("fatcaSearchDO.product").value='CC';
}
更改功能无效。
答案 0 :(得分:1)
当您通过javascript更改输入字段的值时,不会触发更改事件。
您需要手动触发更改事件
像
$("#fatcaSearchDO.product").trigger('change')
例如:
function changeProd(){
$("#fatcaSearchDO.product").val('CC').trigger('change');
}
答案 1 :(得分:0)
$(document).ready(function() {
// Handler for .ready() called.
});
相当于调用:
$(function() {
// Handler for .ready() called.
});
请使用其中一种。
答案 2 :(得分:0)
为什么不将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