2014-09-30 80 views
0

我有下面的HTML單選按鈕,當我選擇相關的單選按鈕時,我需要添加'checked'作爲標籤的類。下面的代碼適用於點擊,但如果選中其中一個按鈕而不點擊,也就是說,如果在加載頁面時已經選擇了單選按鈕,我還需要添加該類。如何選擇單選按鈕時添加課程標籤?

<label><input name="radio" type="radio">One</label><br/> 
<label><input name="radio" type="radio">Two</label> 

這裏的JS:

$(document).ready(function(){ 

    $('label').click(function(){ 
     $('label').removeClass('checked'); 
     $(this).addClass('checked'); 
    }); 

    }); 
+0

「如果加載頁面時已經選定的單選按鈕。」意味着在加載時會選擇它,=>同樣的東西可以添加類 – Alexandros 2014-09-30 13:35:38

+0

PHP已經將'checked =「checked」'添加到其中一個單選按鈕。上述代碼在這種情況下不會添加類。 – Metzed 2014-09-30 13:38:45

+0

啊是的,除非它從PHP:D – Alexandros 2014-09-30 13:39:22

回答

5

只需添加:

$('input:checked').parent().addClass('checked'); 

jsFiddle example

+0

謝謝,這是愚蠢的我。 – 2014-09-30 13:40:37

+0

@Vega - 不要冒汗。我知道你正在考慮的情景。 – j08691 2014-09-30 13:41:38

+0

@ j08691就是這樣,謝謝你的建議! – Metzed 2014-09-30 14:06:08

0

你只需要在文檔準備初始化您的標籤:

$(document).ready(function() { 
 
    var inputs = $('input[type=radio]'); 
 
    inputs.change(function() { 
 
     changeLabelClass(this); 
 
    }); 
 
    
 
    //initialize the labels 
 
    changeLabelClass(inputs) 
 
}); 
 

 
function changeLabelClass(radio) { 
 

 
    //remove the 'checked' class from all labels 
 
    $('input[type=radio]').closest('label').removeClass('checked') 
 
    
 
    if ($(radio).is(':checked')) 
 
     $(radio).closest('label').addClass('checked') 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<label> 
 
    <input name="radio" type="radio" checked>One</label> 
 
<br/> 
 
<label> 
 
    <input name="radio" type="radio">Two</label>