Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery为值设置MVC复选框_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript 使用jquery为值设置MVC复选框

Javascript 使用jquery为值设置MVC复选框,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,这对于知情者来说是一个简单的问题,然而,通过谷歌搜索和堆栈搜索,我发现并没有直接或直接的答案 我有一个简单的支票箱 @Html.CheckBoxFor(x => x.Classify) 这将生成以下2个页面元素 <input data-val="true" data-val-required="The Classify field is required." id="Classify" name="Classify" onclick="OnClassifyClick(this)"

这对于知情者来说是一个简单的问题,然而,通过谷歌搜索和堆栈搜索,我发现并没有直接或直接的答案

我有一个简单的支票箱

@Html.CheckBoxFor(x => x.Classify)
这将生成以下2个页面元素

<input data-val="true" data-val-required="The Classify field is required." id="Classify" name="Classify" onclick="OnClassifyClick(this)" type="checkbox" value="true" data-bind="checked:Classify">
<input name="Classify" type="hidden" value="false" data-bind="value:Classify">
结果如下

<input data-val="true" data-val-required="The Classify field is required." id="Classify" name="Classify" onclick="OnClassifyClick(this)" type="checkbox" value="true" data-bind="checked:Classify" checked="checked">
<input name="Classify" type="hidden" value="false" data-bind="value:Classify">

正如您所看到的,绑定值没有改变

更新

示例应该有效,请参见例外答案

显然,第二个元素用于绑定

这并非完全正确。
@Html.CheckBoxFor()
方法呈现复选框和隐藏输入的原因是未选中的复选框不会回发值。如果未选中该复选框,则会将隐藏的输入值“false”发回。如果选中该复选框,则其“true”值将被发回,隐藏的输入值将被忽略(默认模型绑定器将忽略具有相同名称的后续值)

你可以看到这张照片


因此,您不需要更改隐藏输入的值,这样做可能会导致发回不正确的值。

如果为true,此代码会将复选框的选中状态更改为false

 if ($("#cbinPro").is(":checked")) {
                $("#cbinPro").click();
            }

因此,我发布的jquery示例(理论上)应该可以工作吗?是的。您只想更改复选框,而不是隐藏的输入。
 if ($("#cbinPro").is(":checked")) {
                $("#cbinPro").click();
            }