如果未选中复选框,则中断for循环
break out of for loop if no checkboxes are selected
我有一个学生列表,每个学生旁边都有复选框。现在,我必须运行一个批处理过程,但在发送请求之前,我需要能够在至少选中一个复选框的情况下继续请求。
到目前为止,我的JS函数代码是:
function batchOPTAllocate(){
var pid = encodeURIComponent(document.getElementById('alOptList').value);
var proceed = 0;
var elements = document.getElementsByName('stid[]');
var data = [];
for (var i = 0; i < elements.length; i++){
if (elements[i].checked){
data.push('stid[]='+elements[i].value);
} else{
proceed = 1;
alert("You are required to select at least one student.");
break;
}
}
if(proceed === 0){
params = "&paper="+pid+"&"+data.join('&');
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// some code here...
}
}
xmlhttp.open("POST","batch.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(params);
}
}
即使是上面的代码,如果其中一个复选框被选中,它仍然会发出警报。
如果选中某个项,则看起来您正在向数组data
添加元素。为什么不将警报移出for循环,并仅在data
的长度为零时调用它呢?
类似这样的东西:
if(data.length == 0)
{
// alert
}else{
// carry on
}
如果哪怕只有一个复选框没有被选中,您的代码也会发出警报,因为只需进入其他块一次,就不再是0
您的逻辑有点偏斜,因为它在第一个非检查项上中止
for (var i = 0; i < elements.length; i++){
if (elements[i].checked){
data.push('stid[]='+elements[i].value);
} else{
proceed = 1;
alert("You are required to select at least one student.");
break;
}
}
我会使用:
var proceed = 0;
for (var i = 0; i < elements.length; i++){
if (elements[i].checked){
data.push('stid[]='+elements[i].value);
proceed++;
}
}
if( proceed != 0 ) {
alert("You are required to select at least one student.");
break;
} else {
//--- process students
}
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 从匿名函数中中断for循环
- 如何在中断之前遍历此 for 循环中的所有城市?现在它只是迭代一个
- 我如何编写一个 Javascript for 循环,以便在满足第一个条件时中断
- if语句中的中断语句,该语句包含在嵌套的for循环中
- 在执行 ajax 调用返回错误时中断 jquery for 循环
- 在 for 循环中断中的 JavaScript 切换;冲突
- 如果未选中复选框,则中断for循环
- 这个for循环如何决定何时中断循环
- switch/if语句中断了for循环
- getElementById()中断for循环Javascript
- 量角器在for循环中中断while
- 当遇到不存在的图像时,For循环中断
- 在闭包内中断for循环
- 中断for循环并返回找到的结果
- 如何在jQuery中中断for循环
- 如何在javascript中中断for循环
- JavaScript范围,从函数回调中断for循环
- 在JavaScript中,立即中断for循环并切换大小写