2013-04-07 144 views
0

我有一組4個單選按鈕,點擊時會在我的頁面上顯示/隱藏div。檢測已選中的單選按鈕並觸發點擊

對我的表單進行驗證失敗後,我將用戶返回到最後單擊單選按鈕的窗體中。

我遇到的問題是它不顯示/隱藏div,因爲在這種情況下單選按鈕沒有被點擊。

我希望能夠做的是在頁面加載檢測哪個單選按鈕被檢查,然後觸發點擊事件。 (即模擬某人單擊該單選按鈕),然後它顯示/隱藏我的div。

我的代碼來顯示隱藏看起來像這樣

$('#showduo').click(function(){ 
$('div[id^=div]').hide(); 
$('#div1').show(); 

HTML:

<input type="radio" name="type" value="Single" id="hideall" <?php echo set_radio('type', 'Single', TRUE); ?> /> 
<input type="radio" name="type" value="Singleplus" id="showsingleplus" <?php echo set_radio('type', 'Singleplus'); ?> /> 
<input type="radio" name="type" value="Duo" id="showduo" <?php echo set_radio('type', 'Duo'); ?> /> 
<input type="radio" name="type" value="Family" id="showfamily" <?php echo set_radio('type', 'Family'); ?> /> 

<div id="div1" style="display:none;"> 

+0

請包括您的html。是否每個單選按鈕都有自己的'id'和它自己的'click'? – 2013-04-07 02:42:19

+1

爲了得到檢查哪個單選按鈕,您可以使用以下代碼: $('input [name = radioName]:checked','#myForm')。val() – hugohabel 2013-04-07 02:47:05

+0

我認爲這可能很有用http:// stackoverflow.com/questions/596351/how-can-i-get-which-radio-is-selected-via-jquery?rq=1 – Ragnarokkr 2013-04-07 04:30:52

回答

0

如果你調用.click()沒有對選定的單選按鈕的任何參數,它將執行單擊處理程序對於那個按鈕,就好像用戶點擊它一樣。

嘗試:

$('input:radio[name=xxx]:checked').click(); 

當然,你要「XXX」改爲你給單選按鈕的名稱。

注:我覺得不得不說,我不會這樣做,所以每個單選按鈕都有自己的處理程序。這意味着如果你想添加另一個單選按鈕,你必須添加JavaScript。

+0

這正是我想要它做的。我遇到了一個問題,我將這段代碼放在了點擊函數的代碼上面。但在將其向下移動之後,它可以很好地工作。我不確定你的評論是什麼意思。在我不知道我還會怎麼做 – 2013-04-07 07:02:53

+0

@斯科特古德曼 - 如果你有興趣,我創建了一個[jsfiddle](http://jsfiddle.net/john_s/gwHNu/1/),演示如何你可以設置這個,所以你只有一個處理程序,並且如果添加另一個單選按鈕,則不必更改JavaScript。如果您發現它有任何價值,請告訴我。 – 2013-04-07 15:57:03

+0

謝謝你的約翰。非常感激。 – 2013-04-08 03:47:26