我有一个带有复选框的页面,当我点击一个按钮时,我试图遍历它们,检查是否有任何一个被检查,如果没有选中,我想显示一个警告。这就是我所拥有的,而且它无法正常工作。
$(document).ready(function() {
$('input#addnewwebsite').click(function() {
$('input[type=checkbox]').each(function() {
var categories = [];
var $(this) = $(this);
if ($(this).is(':checked') == true) {
categories.push($(this)); // checked, add to array
break;
}
if (categories != null) {
alert('You must select at least one category.');
return false;
}
});
});
});
答案 0 :(得分:2)
您只需使用长度为self.addGestureRecognizer(tapGesture)
的选择器。
:checked
为什么你的代码没有工作。
$('input#addnewwebsite').click(function() {
var categories = $('input:checkbox:checked');
if(!categories.length){
alert('You must select at least one category.');
}
})
。答案 1 :(得分:0)
var categories = [];
$(document).ready(function() {
$('input#addnewwebsite').click(function() {
$('input[type=checkbox]').each(function() {
var $this = $(this);
if ( $this.is(':checked') == true) {
categories.push( $this ); // checked, add to array
break;
}
if (categories.length == 0 ) {
alert('You must select at least one category.');
return false;
}
});
});
});
在您的代码中,categories数组需要在循环之外,因为它正在为每个复选框迭代重新初始化。 此外,您无需检查类别!= null ,而是检查数组的长度,如果 ZERO ,则需要提醒消息。 你已经分配了 var $(this)= $(this)这没有任何意义。而应该是 var $ this = $(this)或变量名称可以是任何东西。