2011-01-29 64 views
0

我正在使用以下代碼來檢查是否至少有一個複選框從我的asp.net中的複選框中被選中。我正在使用jGrowl發送一條可用的消息,但是如果進行了選擇,消息仍會顯示。有任何想法嗎?此外,story_type是一個asp的標籤,我使用下面的代碼,但我不能讓jGrowl消息顯示...JavaScript驗證

var story_type = document.getElementById('story_type').value; 
var agile_list = document.getElementById('agile_factors'); 
var arrayOfCheckBoxes = agile_list.getElementsByTagName("input"); 

for (counter = 0; counter < arrayOfCheckBoxes.length; counter++) { 

    if (arrayOfCheckBoxes[counter].checked) { 

     return true; 

    } else { 

     (function($) { 
     $.jGrowl("Please Choose up to 3 Agile Factors", { theme: 'smoke', closer: true }); 
     })(jQuery); 

     return false; 
    } 

} 

if (story_type == "[SELECT TYPE]") { 
    (function($) { 
     $.jGrowl("Please Select Story Type", { theme: 'smoke', sticky: true, closer: true }) 
     return false; 

    })(jQuery); 

    return true; 
} 
+0

複選框是頁面上唯一的「輸入」元素嗎? – rcravens

回答

1

既然你有jQuery的你可以這樣做,以簡化您的代碼位:

<div id="options"> 
     <input type="checkbox" name="opt1" /> Option 1 
     <input type="checkbox" name="opt2" /> Option 2 
     <input type="checkbox" name="opt3" /> Option 3 
     <input type="checkbox" name="opt4" /> Option 4 
    </div> 
    <div> 
     <a href="#" id="validate">validate</a> 
    </div> 
    <script type="text/javascript"> 
    ;(function() { 

     $("#validate").click(function() { 
      validateInputs(); 
     }); 


     function validateInputs() { 
      alert($("#options input:checked").length + " checked"); 
     } 
    })(); 

</script> 

這是上面代碼的jsFiddle; http://jsfiddle.net/rvXHG/

+0

沒錯。 這是行上的一個錯字';(function(){...' - ';'應該是一個美元'$'? – 5arx