将Jquery设置复选框设置为禁用也将选中设置为false

时间:2014-04-02 14:18:59

标签: jquery checkbox

我有以下代码行

$("#mytable td :checkbox").prop("disabled", true);

当页面发布并返回自身时(即由于验证问题等),此行会导致复选框被设置为禁用(如果需要),但也会将已设置为已选中的所有复选框的已选中状态设置为false 。如果我把这条线拿出来,那么显然复选框不会被禁用,但它们会保持其已检查的状态。

但是,如果页面通过另一个页面导航,则此行正常工作并将复选框设置为禁用并保持其已检查状态。

到底是怎么回事?

4 个答案:

答案 0 :(得分:0)

我认为这是因为未提交禁用的输入(包括复选框)。因此,如果复选框更改了其状态,则不会提交新值。

答案 1 :(得分:0)

使用.attr属性而不是.prop

$("#mytable td :checkbox").attr("disabled", true);

.attr初始状态的复选框没有变化 .prop根据属性的变化来改变状态

查看文档以供参考

http://api.jquery.com/prop/

答案 2 :(得分:0)

$("#mytable td :checkbox").attr('onclick','return false');

答案 3 :(得分:0)

事实证明,Jquery系列是红鲱鱼。实际问题在于Asp.Net MVC,模型状态因为它回归自身而超越了模型值。调用modelstate.clear()修复了这个问题。