使用 JavaScript 确定复选框 + 隐藏字段组合的值
Determine value of checkbox + hidden field combo using JavaScript
复选框
的常见做法是将其与隐藏字段配对,这将确保HTTP帖子始终包含一个值,即使复选框未选中。
例如,如果我有一个术语复选框,我可能会像这样实现它,同时使用复选框和一个隐藏元素:
<input type="checkbox" name="termsAgreement" value="true"> I accept the terms.
<input type="hidden" name="termsAgreement" value="false">
回发时,HTTP 请求包含两个值之一(选中时):
条款协议=真&条款协议=假
或一个值(如果未选中):
条款协议=假
这很容易处理,因为您只需OR
任何一种方式的值,您都会得到正确的值。
但是,如果您想确定客户端的适当值,我能想到的唯一解决方案涉及一些非常讨厌的逻辑。
在这种情况下,有没有一种优雅的方法可以相当容易地使用 JavaScript 或 jQuery 确定值?
我从来没有为隐藏字段而烦恼。在PHP或Java中,我只会使用isset(或等效的)方法来查看值是否存在,并在不存在时将其视为未选中。
在您的情况下,我会考虑给复选框本身一个 id,并使用 checked 属性查看它是否被选中。
.HTML:
<input id="termsAgreementCB" type="checkbox" name="termsAgreement" value="true">
Javascript:
var cbRef = getElementById('termsAgreementCB');
if(cbRef.checked) {
/// The checkbox is checked.
}
JQuery <= 1.5
if($('#termsAgreementCB").attr('checked')) {
/// The checkbox is checked.
}
JQuery 1.6
if($('#termsAgreementCB").prop('checked')) {
/// The checkbox is checked.
}
编辑根据您的评论,我会查看您的 MVC 文档,看看是否可以在输出的输入上放置 ID。如果没有,您可以将它们包装在div 中。
var $value = ''`enter code here`;
$('#myDiv input').each() {
if($(this).attr('type') == 'checkbox' && $(this).attr('checked')) {
$value = $(this).attr('value');
} else if($(this).attr('type') == hidden && $value == '') {
$value = $(this).attr('value);
}
}
如果您有多个复选框,只需将其抽象为一个方法即可。
相关文章:
- 使用通用方法覆盖每个组合getValue字段
- 如何使用jquery将两个字段组合为下拉菜单中的选项
- 将多字段html输入组合为一个参数并传递给javascript
- 将日期和时间变量组合为mysqli日期时间字段
- ExtJs组合框显示字段编码
- 谷歌地图API JS-放置两个组合字段的自动完成
- 组合功能以使用 Jquery 在一组单选按钮中显示输入字段和单选按钮
- 如何组合来自三个不同字段的值,并仅在所有三个字段都填充值时才将其设置为隐藏字段
- 从 Rally 构建的 extjs 组合框中,如何获取子 ChangeSet 记录上的字段
- 重新加载 w2ui 的 grid.columns.editable.items 如果字段是组合框
- 组合作用域后,字段在 Angular 中未正确重复
- jQuery 选择错误:添加新的选择字段并对其进行组合时出现问题
- EXT JS :在组合框中,如何为不在存储中的记录设置显示字段
- ExtJS 4 组合框在表单绑定上显示值字段而不是显示字段
- 使两个字段的组合在我的收藏中独一无二
- Adobe Acrobat:使用组合框(下拉)选择更改另一个字段
- 从多个字段组合文本字段集
- 如何将数组中的字段组合到相同长度的另一个数组中
- 文本框&选择字段组合(Javascript + Rails)
- 使用 JavaScript 确定复选框 + 隐藏字段组合的值