我有大约100个课程,复选框有course-chkbox
课,我使用以下代码:
//Make sure user has checked at least one course
if ($('.course-chkbox:checked').length === 0) {
alert('You have to have at least one course selected');
return false;
}
这是正确的,因为我使用的是最新版本的jQuery吗?
有很多关于如何根据谷歌搜索来解决同样事情的建议...
1. Usage of is("checked")
2. Usage of prop()
3. Looping through the elements involved and check each element if it's checked
什么解决方案最好?为什么?
答案 0 :(得分:2)
考虑到性能方面,您的代码优于迭代。
- 使用is(“选中”)
- prop()
的用法 醇>
这2个案例必须经历 迭代 (循环检查是否已检查)。
$('.course-chkbox').is(':checked').length // returns undefined
$('.course-chkbox').prop('checked').length //returns undefined
如果您尝试使用迭代,那么代码可能看起来像(这可以减少但是一旦我看到这篇帖子就会出现在我脑海中)
var tot;
$('.course-chkbox').each(function() {
if ($(this).is(':checked')) { //or if($(this).prop('checked')) {
tot = tot + 1;
}
});
if (tot == 100) {
alert('You have to have at least one course selected');
return false;
}
所以使用你的代码是明智的。
if ($('.course-chkbox:checked').length) {
alert('You have to have at least one course selected');
return false;
}
我尝试为此测试用例创建benchmark(您的代码获胜),不确定代码的正确性。