我正在寻找一段时间,我找不到适合我的东西。
我有这个复选框:
<%= Html.CheckBox("cbCodigo") %> <label class="inline" for="Codigo">Codigo</label>
<%= Html.CheckBox("cbNombreCliente") %> <label class="inline" for="NombreCliente">Nombre del cliente</label>
<%= Html.CheckBox("cbCiudad") %> <label class="inline" for="Ciudad">Ciudad</label>
我想验证文本框更改时只检查了一个,类似这样,并使用jQuery的.validate,我不知道验证这个的最佳方法。
tbCodCliente是我用作搜索参数的文本框,复选框是文本框自动完成功能的参数或值
$('#tbCodCliente').change(function() {
if ($('#cbCodigo').attr('checked', false) &&
$('#cbNombreCliente').attr('checked', false) &&
$('#tbCheckbox').attr('checked', false)) {
// function for validate method
}
});
我试图以这种方式验证,但我不知道这是否是最佳方式。
编辑: 我想要这样的东西,但仍然可以找到它是如何工作的
('#tbCodCliente').change(function() {
if( $("input:checked").length == 0 ) {
$("#request-form").validate({
rules: {
checkbox: {
required: 'input[type="checkbox"]:checked',
minlength: 1
}
},
messages: {
checkbox: {"Please check at least one."}
}
})
}
});
答案 0 :(得分:2)
如果这些是页面上唯一可用的复选框,那么您可以尝试按照jQuery语句进行检查:
if( $("input:checked").length == 1 )
编辑:
更准确地说,您可以将验证码更改为以下内容:
$('#tbCodCliente').change(function() {
if( $("input:checked").length == 1 ) {
//Do stuff here
}
});
答案 1 :(得分:1)
选中任何一个复选框后,这将取消选中其他复选框。
$('input:checkbox').change(function () {
if (this.checked) {
$('input:checkbox:not(#'+this.id+')').attr('checked', false);
}
});
对于单一复选框选择的检查,您可以参考epuri的答案,这是非常正确的。