Javascript 如果我的复选框数组未全部选中,则在选中后如何显示此警报框

Javascript 如果我的复选框数组未全部选中,则在选中后如何显示此警报框,javascript,Javascript,大家好,我正在创建一个验证,通过检查来检查用户是否至少选择了一个支架,如果没有选择支架,则应显示一个警告框,告知用户至少选择一个支架。我的javascript函数在提交时触发 我的代码是 ab=document.getElementById(“repo_document_form”).elements[['stands[]']; 对于(var i=0;i函数checkstanddocument(){ var hasOne=假; ab=document.getElementById(“回购文件表单

大家好,我正在创建一个验证,通过检查来检查用户是否至少选择了一个支架,如果没有选择支架,则应显示一个警告框,告知用户至少选择一个支架。我的javascript函数在提交时触发

我的代码是

ab=document.getElementById(“repo_document_form”).elements[['stands[]'];
对于(var i=0;i
函数checkstanddocument(){
var hasOne=假;
ab=document.getElementById(“回购文件表单”).elements[['stands[]'];
对于(变量i=0;i
功能检查标准文档(){
var hasOne=假;
ab=document.getElementById(“回购文件表单”).elements[['stands[]'];
对于(变量i=0;i
for循环中的条件错误,请使用:

for(var i = 0; i < ab.length; i++) {
for(变量i=0;i

for循环中的条件错误,请使用:

for(var i = 0; i < ab.length; i++) {
for(变量i=0;i

其他答案都很好,但它们遗漏了一件事。您必须检查以确保ab实际上是一个数组。如果只有一个复选框,它将作为单个HTML元素返回

function checkstanddocument(){
 var hasOne = false;
 ab = document.getElementById("repo_document_form").elements[['stands[]']];   
 if (ab.length != null){
    for (var i = 0; i < ab.length; i++){

      if (ab[i].checked == true){
        hasOne = true;
      }    
    }
 }
 else hasOne = ab.checked;

  if (hasOne == false) {

   alert("Please select at least one stand");
   return false

  } else {

   return true;

  }

}
功能检查标准文档(){
var hasOne=假;
ab=document.getElementById(“回购文件表单”).elements[['stands[]'];
如果(ab.length!=null){
对于(变量i=0;i
其他答案都很好,但它们遗漏了一件事。您必须检查以确保ab实际上是一个数组。如果只有一个复选框,它将作为单个HTML元素返回

function checkstanddocument(){
 var hasOne = false;
 ab = document.getElementById("repo_document_form").elements[['stands[]']];   
 if (ab.length != null){
    for (var i = 0; i < ab.length; i++){

      if (ab[i].checked == true){
        hasOne = true;
      }    
    }
 }
 else hasOne = ab.checked;

  if (hasOne == false) {

   alert("Please select at least one stand");
   return false

  } else {

   return true;

  }

}
功能检查标准文档(){
var hasOne=假;
ab=document.getElementById(“回购文件表单”).elements[['stands[]'];
如果(ab.length!=null){
对于(变量i=0;i
我发现,使用带有CSS选择器的
$$()
函数来获取所需的控件非常容易

这样做的好处是,只需在实际找到的复选框中循环,就不必担心所有的循环边条件

如果未选中任何复选框(或未找到任何复选框),此函数将显示警报,并根据找到的内容返回true或false

function checkstanddocument() {
    var ret = false;

    $$('#repo_document_form input[type="checkbox"][name="stands[]"]').each( function(checkbox) {
        if(checkbox.checked) {
            ret = true;
            throw $break;
        }
    });

    if(!ret) {
        alert('Please select at least one stand.');
    }

    return ret;
}
我发现使用带有CSS选择器的
$$()
函数来获取所需的控件非常容易

这样做的好处是,只需在实际找到的复选框中循环,就不必担心所有的循环边条件

如果未选中任何复选框(或未找到任何复选框),此函数将显示警报,并根据找到的内容返回true或false

function checkstanddocument() {
    var ret = false;

    $$('#repo_document_form input[type="checkbox"][name="stands[]"]').each( function(checkbox) {
        if(checkbox.checked) {
            ret = true;
            throw $break;
        }
    });

    if(!ret) {
        alert('Please select at least one stand.');
    }

    return ret;
}

你应该在循环中的if语句中添加一个中断。如果你已经找到1,则不需要继续循环。这基本上与立即返回true相同,从而使此函数与Donald已经使用的函数相同…你应该在循环中的if语句中添加一个中断。如果你已经找到1,则不需要继续循环。这是b基本上与立即返回true相同,因此这与Donald已经在使用的函数相同…循环做得很好,我甚至计算了数字并显示了数组的数量elements@knittl,你最初的建议100%解决了问题,<而不是循环做得很好,我甚至数了数,结果是dis播放数组的数量elements@knittl,你最初的建议100%解决了这个问题,<实际上,PrototypeJS只是一个Javascript库。没有理由不能在Rails项目中使用它。只需下载prototype.js文件并在HTML页眉中添加一个标记。因为它可以让你用更少的代码做更多的事情。想想看关于所有围绕for循环正确性的讨论。所有这些都可以通过上面的函数避免。看看我们无所畏惧的领导者的这篇博文:实际上,PrototypeJS只是一个Javascript库。没有理由不能在Rails项目中使用它。只需下载prototype.js文件并添加HTML页面标题中的一个标记。因为它可以让你用更少的代码做更多的事情。想想所有围绕for循环正确性的讨论。所有这些都可以通过上面的函数避免。请看一下我们无畏的领导者的这篇博文: