我有带有4个复选框字段的表单。为了使用户能够处理表格,他们必须至少选中一个复选框。如果未选中任何复选框,则用户将收到有关此错误的消息。我有一个提交功能,我想验证这个标准。但是,这是我的功能:
$(document).on('submit', '#myFrm', saveFrm);
function saveFrm(e) {
e.preventDefault();
var frmData = $(this).serialize(),
submitBtn = $(this).closest('form').find(':submit'),
messageBox = $(this).closest('form').find('.message-submit'),
ckLen = $('#myFrm input[type=checkbox]:checked');
if(ckLen === 0){
alert('At least on checkbox has to be checked.');
}else{
// Save form
}
}
上面的代码应该可以正常工作,但是我想知道的是这一行代码:
ckLen = $('#myFrm input[type=checkbox]:checked');
是否可以使用$(this)
代替硬编码的表单ID?
答案 0 :(得分:1)
您可以在$(this)
上使用find()
。您还必须从对象中获取 length 属性,以使条件正常运行:
ckLen = $(this).find('input[type=checkbox]:checked').length;