我有一个搜索栏和一个在其下的表格,其中有一个全选选项。 “全选”功能工作正常,但是当我在搜索栏中搜索某项然后单击“全选”按钮时,什么也没有发生。我不知道为什么会这样吗?
这是我的“全选”功能代码
function selectUnselectchkAllProcessedOrders() {
debugger
$("#chkAllProcessedOrders").click(function () {
var checked_status = this.checked;
$("input[name='fulfillmentOrderId']").each(function () {
this.checked = checked_status;
if (checked_status)
$(this).parent().parent().addClass('greanBackGround');
else
$(this).parent().parent().removeClass('greanBackGround');
});
});
}
当我单击搜索按钮后单击“全选”复选框时,我可以看到使用调试器,当调用selectUnselectchkAllProcessedOrders()函数时,未定义this.checked。
这是cshtml
<div>
<table>
<tr>
<td>
<label>Order Number</label></td>
<td>
<input type="text" id="TextBoxFullFillmentOrderNumber"
/></td>
<td>
<input type="submit" name="ButtonSearch" value="Search"
/>
<input type="hidden" name="posearchorderno"
id="posearchorderno" />
<input type="hidden" name="search" value="some" />
</td>
</tr>
<tr></tr>
</table>
</div>
}
答案 0 :(得分:1)
尝试以下操作:您正在尝试为动态创建的复选框绑定点击事件,因此请使用.on
,如下所示
$(document).on("click","#chkAllProcessedOrders", function () {
var checked_status = this.checked;
$("input[name='fulfillmentOrderId']").each(function () {
this.checked = checked_status;
if (checked_status)
$(this).parent().parent().addClass('greanBackGround');
else
$(this).parent().parent().removeClass('greanBackGround');
});
});