我有一个带有一组复选框的页面,我想在有更改时运行一个javascript函数(我已经做了一些非常类似于下拉列表 - 并且有效)
然而,对于复选框,我有三个问题:
我的onChange事件仅“有时”运行(您必须在不同的复选框控件之间更改焦点
当它运行时,它返回上一个复选框的结果(不是刚刚点击的那个)
jQuery总是返回值true
复选框创建
<%= Html.CheckBox("sl-" + row.Id, value, new { onChange = "SuitabilityChecked("+row.Id+", "+key+")"})%>
的Javascript
function SuitabilityChecked(providerId, parentRecordId) {
var params = {};
params.providerId = providerId;
params.parentRecordId = parentRecordId;
var value = $("#sl-" + providerId).val();
params.value = value;
$.getJSON("SuitabilityChecked", params, null);
};
答案 0 :(得分:3)
浏览器对于单选按钮和复选框很有趣,可以延迟更改直到焦点更改。尝试添加onclick事件以模糊或直接调用更改事件。
使用jQuery Live可能是这样的事情(未经测试,在我的脑海中):
$(':checkbox').live('click', function() { $(this).change(); });
答案 1 :(得分:0)
发生了什么:
这使得Checkbox B看起来好像是返回Checkbox A的结果。如果您在此方案中单击Checkbox B后按Tab键,您会注意到它的 onChange 会触发。