2011-04-18 38 views
0

我有一組名稱爲「rb_Select」的單選按鈕。jquery,單選按鈕,驗證和索引問題

我添加了一個簡單的單選按鈕驗證,以確保至少有1個單選按鈕被選中,但我現在看到我的語法是我的javascript函數寫入不正確。

基本上,我檢查的是if/else語句中的真/假值。然而,我意識到,如果沒有單選按鈕被選中,那麼我會得到多個假值。假設我有8個單選按鈕,我在調試時收到8個提醒窗口。

如果我選擇1個單選按鈕,那麼我會得到一個真正的7錯誤。但那不是我想要的。

我想要的是1是真實的,沒有錯誤。我不確定語法應該是什麼。我顯然做錯了什麼。

這裏是提交功能:

var $ = jQuery; 

$("#pError").hide(); 
$("#LocInfo").hide(); 

$(".submit-button").click(function() { 

    var rb = document.getElementsByName('rb_Select'); 

    for (var i = 0; i < rb.length; i++) 
    { 
     if (rb[i].checked == true) 
     { 

     alert('Value=' + rb[i].value + 'TRUE'); 
     var myURL = rb[i].value; 
     window.open(myURL); 


     } else { 

     alert('Value=' + rb[i].value + 'False'); 

     $("#pError").fadeIn(); 
     var fade_out = function() { $("#pError").fadeOut(); } 
      setTimeout(fade_out, 3000); 
     }; 

    } 
}); 

回答

1

您可以使用選擇input[type='radio'][name='rb_Select']:checked長度方法,看看如果選擇了收音機。

試試這個:

var $ = jQuery; 

    $("#pError").hide(); 
    $("#LocInfo").hide(); 

    $(".submit-button").click(function() { 

     var radios = $("input[type='radio'][name='rb_Select']:checked"); 
     if(radios.length > 0){ 
      alert('Value=' + radios.val() + 'TRUE'); 
      window.open(radios.val()); 
     }  else{ 

      alert('Value=' + radios.val()+ 'False'); 

      $("#pError").fadeIn(); 
      var fade_out = function() { $("#pError").fadeOut(); } 
       setTimeout(fade_out, 3000); 
      }; 
     } 
    }); 
+0

嘿非常感謝這一點。除了一行 – Robbiegod 2011-04-18 16:54:48

+0

一切都在你的腳本巨大: 如果 (radios.length()> 0){ 應該是: 如果(radios.length> 0){ 具有()的JavaScript使得其認爲一個函數。 :) 感謝您的幫助! – Robbiegod 2011-04-18 16:59:14

+0

@Robbiegod:修正了錯字 – Chandu 2011-04-18 17:12:01