我有这个代码,但似乎没有返回true.警报总是出现.任何想法(不需要创建一个var,在其中存储一个复选框已被选中,似乎有点黑客).
谢谢.
- $("#form").submit(function(e) {
- $('input[type=checkBox]').each(function () {
- if(this.checked){
- return true;
- }
- });
- alert("Please select at least one to upgrade.");
- return false;
- });
解决方法
您不需要执行循环来确定是否选中一个复选框.
:checked
选择器滤除所有未检查的选项.然后,您可以使用
$.length
获取已检查输入的计数.
- $("#form").submit(function(e) {
- if(!$('input[type=checkBox]:checked').length) {
- alert("Please select at least one to upgrade.");
- //stop the form from submitting
- return false;
- }
- return true;
- });
另外,使用你的方法,一个小的变化应该使这个工作
- $("#form").submit(function(e) {
- $('input[type=checkBox]').each(function () {
- if($(this).is(':checked')){
- return true;
- }
- });
- alert("Please select at least one to upgrade.");
- return false;
- });
我认为你可能会简单地丢失$()