我正在使用以下代码来检测gridview模板字段中的复选框是否已选中。如果未选中任何复选框,则我想显示警告消息。
function findCheckBox() {
var inputElements = document.getElementsByTagName('input');
var chekSelect = false;
for (var i = 0; i < inputElements.length; i++) {
var myElement = inputElements[i];
if (myElement.type === "checkbox") {
if (myElement.checked === false) {
chekSelect = true;
return true;
}
}
if (chekSelect === true) {
return true;
}
else {
alert('Please Check Atleast one record to print cheque!!!');
return false;
}
}
}
但是当我点击我的按钮时,使用此代码,即使选中了一个或多个复选框,它也会显示一次错误消息。我在这做错了什么。任何人都可以帮助我。
答案 0 :(得分:3)
你的逻辑略有偏差。更正版本:
<强> jsFiddle demo 强>
function findCheckBox() {
var inputElements = document.getElementsByTagName('input');
var chekSelect = false;
for (var i = 0; i < inputElements.length; i++) {
var myElement = inputElements[i];
if (myElement.type === "checkbox") {
if (myElement.checked) {
chekSelect = true;
break;
}
}
}
if(!chekSelect) {
alert('Please Check Atleast one record to print cheque!!!');
return false;
} else {
return true;
}
}
我已更改.checked
测试,以测试true
而不是false
,因为您想知道是否至少选中了一个复选框。我还添加了一个休息时间,并将警报移到了for的外部,因为在完成for之前你不会知道是否检查了一个复选框。
答案 1 :(得分:3)
试试这个
function findCheckBox() {
var inputElements = document.getElementsByTagName('input');
for (var i = 0; i < inputElements.length; i++) {
var myElement = inputElements[i];
if (myElement.type === "checkbox" && myElement.checked) {
return true;
}
}
alert('Please Check Atleast one record to print cheque!!!');
return false;
}
答案 2 :(得分:1)
使用JQuery:
var checked = false;
$('input:checkbox').each(function(){
if($(this).prop('checked')){
checked = true;
break;
}
});
if(!checked) alert('Please Check At least one record to print cheque!!!')