2013-07-04 89 views
0

我正在使用下面的代码来检测我的gridview模板字段内的复选框是否被选中。如果没有选中复选框,我想显示警报消息。如何使用javascript显示警报消息来检查复选框?

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

可以使用jqeury? –

+0

我很抱歉,但我不知道Jquery ..你可以告诉我如何使用它? – barsan

回答

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测试,以测试它是truefalse,因为你要知道,如果至少一个复选框被选中。我还添加了一个中断,并将警报移到了for之外,因为您不知道是否有复选框被选中,直到完成。

+0

多谢先生...它的工作就像一个魅力.. – barsan

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; 
} 
+0

谢谢你的回复.. – barsan

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!!!') 
+1

这可以简化为'if(!$('input [type = checkbox]:checked')。length )alert('...');'。 – MrCode

相关问题