返回两个值的复选框
Checkbox returning two values
我目前正在使用javascript为复选框生成HTML,但当我将表单发布到接受FormCollection
作为参数的控制器时。
然后,我将这些值放入字典中,并检查字典中的值。虽然其他复选框只返回一个值,但我的autoDiscovery
复选框返回两个值,即'on'
和'true'
,这对我来说没有意义
这是呈现的HTML
<div class="form-group">
<div class="col-md-10">
<label class="col-md-3 control-label" for="autoDiscovery">
<input id="autoDiscovery" type="checkbox" checked="" data-val="false" name="autoDiscovery">
<input type="hidden" name="autoDiscovery" value="true"> Auto Discovery
</label>
</div>
</div>
这是我用来分配复选框的javascript
function AssignCheckbox(variableName, jsonData, caption) {
var checked = jsonData == 1 ? 'checked' : '';
var value = jsonData == 1 ? 'true' : 'false';
return divFormGroupOpening + divOpeningInput +
'<label class="col-md-3 control-label" for="' + variableName + '">' + '<input id="' + variableName + '" type="checkbox" name="' + variableName + '" data-val="false"' + checked + '>' +
'<input type="hidden" value="' + value + '" name="' + variableName + '">' +
' ' + caption +'</label></div></div>';
}
您有两个具有完全相同name
属性的input
。当然,你会期望两个值
<input id="' + variableName + '" name="' + variableName + '" '>'
<input type="hidden" name="' + variableName + '">'
检查使用@Html.CheckBoxFor()
方法时生成的html。它生成
<input type="checkbox" name="autoDiscovery" value="true" ..... />
<input type="hidden" name="autoDiscovery" value="false" />
你需要模仿它。当前,您的checkbox元素没有value属性,因此如果在视图中选中它,它将返回"on"。您的隐藏输入值是"true"
,因此值也会发布。
同样重要的是,不要使用FormCollection。张贴回模型,或在方法中添加参数-bool autoDiscovery
,以便DefaultModelBinder
根据复选框的选中状态将值正确设置为true
或false
相关文章:
- 为复选框javascript指定两个值
- angularjs复选框验证至少两个
- 我有两个复选框,只有一个可以点击
- jQueryui上的两个复选框选中需要按钮激活和未选中禁用
- AngularJS:用两个JSON数组填充复选框列表,最初检查了一个数组中的一些项
- 带有复选框的jQuery验证场景有两个部分
- 防止具有相同选项的两个复选框上的重复选项
- 如果选中两个复选框,则条件在 jQuery 中不起作用
- jQuery,显示两个不同的列表,选中了通用的“rel”复选框
- 在两个复选框之间切换
- 如何使用 jQuery 从两个表中获取选中复选框值
- 卡在检查两个复选框中的任何一个是否被选中
- 如何使用jQuery检查两个复选框何时都有非空值
- 在 jquery 中序列化两个复选框
- 我有一个**Rad Combo Box**,其中有两个分隔符.如何仅从分隔符中删除复选框
- 如果选中了两个复选框,请不要这样做
- 显示两个复选框元素的标题之间的数学差异
- 将两个复选框绑定在一起
- 如何使用jQuery处理两个复选框
- MVC中有两个复选框,但每次只允许一个复选框