给定以下标记:
<input name="active" type="hidden" value="0" />
<input id="active" name="active" type="checkbox" value="1" />
当取消选中该复选框并提交表单时,服务器将获得“active”参数的值“0”。当选中该复选框并提交表单时,服务器将获得“active”参数的值“1”。这工作得很好。
我想要做的是基于此捕获 JavaScript 中的正确值。然而,诀窍是我不知道输入是否是复选框。就我的脚本而言,它只是作用于一组输入。
我在这里创建了一个 JSFiddle:http://jsfiddle.net/bcardarella/5QRjF/这说明了这个问题。
TL;DR 我想确保从每个输入捕获的值是发送到服务器的实际值。
最佳答案
不知道您是否真的想检查该复选框,但此代码有效:
$(function() {
var getCheckBoxValue = function() {
if ($('[name="active"]:checkbox').attr("checked")) {
return $('[name="active"]:checkbox').val();
} else {
return $('[name="active"]').val();
}
}
var result = $('#result');
result.append($('<p/>', {text: 'Expected value 0, got: ' + getCheckBoxValue()}));
$(':checkbox')[0].checked = true;
result.append($('<p/>', {text: 'Expected value 1, got: ' + getCheckBoxValue()}));
});
基本上,如果选中该复选框,则使用它,否则,使用隐藏输入中的默认值。
编辑
将我的评论变成了 fiddle ,我还添加了另一个字段,一个文本字段,以更好地显示其背后的想法:http://jsfiddle.net/45qup/
希望对你有帮助!
关于javascript - 如果输入是复选框,则捕获正确输入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695689/