2013-07-04 40 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

相關問題