2014-01-12 123 views
0

我有一組單選按鈕,每組都有一個不同的組名。 我想要檢查班級'收音機'的任何單選按鈕,看看是否有任何組被選中。如果沒有選擇,則選擇該組中的最後一個無線電並顯示變量'promptOther'。這是有效的,但它並不是只顯示一個推銷者,而是實際顯示每個單選按鈕的提示。我怎樣才能限制它只顯示一個?在.each循環中限制一個.after()

$('.radio').each(function() { 
     var radioName = $(this).attr('name'); 
     if (!$('input[name='+radioName+']:checked').val()) { 
      $('input[name='+radioName+']:last').parent().after(promptOther); 
      required = false; 
     } 
     else { 
      $('.required-prompt', this).remove(); 
      required = true;    
     } 
    }); 

回答

1

你能記住這組你已經像這樣處理:

var handled = []; // Create an array 
$('.radio').each(function() { 
     var radioName = $(this).attr('name'); 
     if($.inArray(radioName, handled) == -1) { // Check if we handled it 
      if (!$('input[name='+radioName+']:checked').val()) { 
       $('input[name='+radioName+']:last').parent().after(promptOther); 
       required = false; 
      } 
      else { 
       $('.required-prompt', this).remove(); 
       required = true;    
      } 
      handled.push(radioName); // Push to array 
     } 
    }); 
+0

哇,我從來不知道你可以做到這一點。我一直試圖弄清楚爲什麼我得到一個錯誤,但它顯然是這一行:處理[] = radioName;任何想法爲什麼? – user2889310

+0

更新了代碼,應該現在就開始工作。 – Niels