我有以下代码行
$("#mytable td :checkbox").prop("disabled", true);
当页面发布并返回自身时(即由于验证问题等),此行会导致复选框被设置为禁用(如果需要),但也会将已设置为已选中的所有复选框的已选中状态设置为false 。如果我把这条线拿出来,那么显然复选框不会被禁用,但它们会保持其已检查的状态。
但是,如果页面通过另一个页面导航,则此行正常工作并将复选框设置为禁用并保持其已检查状态。
到底是怎么回事?
答案 0 :(得分:0)
我认为这是因为未提交禁用的输入(包括复选框)。因此,如果复选框更改了其状态,则不会提交新值。
答案 1 :(得分:0)
使用.attr属性而不是.prop
$("#mytable td :checkbox").attr("disabled", true);
.attr初始状态的复选框没有变化 .prop根据属性的变化来改变状态
查看文档以供参考
答案 2 :(得分:0)
试
$("#mytable td :checkbox").attr('onclick','return false');
答案 3 :(得分:0)
事实证明,Jquery系列是红鲱鱼。实际问题在于Asp.Net MVC,模型状态因为它回归自身而超越了模型值。调用modelstate.clear()修复了这个问题。