2012-07-01 58 views
-1

我有以下的HTML如果選擇特定的單選按鈕,如何獲取文本框的值?

CHOICE 1 
<input type="radio" name="c1" value="0" class="a"> Yes 
<input type="radio" name="c1" value="1" class="a"> No 
<input type="radio" name="c1" value="2" class="a"> Only <input type="text" id="t1" /> 
<br /> 
CHOICE 2 
<input type="radio" name="c2" value="0" class="a"> Yes 
<input type="radio" name="c2" value="1" class="a"> No 
<input type="radio" name="c2" value="2" class="a"> Only 
<input type="text" id="t2" /> 
<br /> 
CHOICE 3 
<input type="radio" name="c3" value="0" class="a"> Yes 
<input type="radio" name="c3" value="1" class="a"> No 
<input type="radio" name="c3" value="2" class="a"> Only 
<input type="text" id="t3" /> 
<br /> 
<button>Press me</button> 

我想要得到的文本框的值,如果選擇了單選按鈕是「只有」。任何想法如何做到這一點?

這是我目前的jQuery腳本

var arr = new Array(); 
var rad; 
var i = 0; 
var id; 
$('button').click(function(){ 

$('input[type="radio"]:checked').each(function(){ 
rad = $('input[type="radio"]:checked').val(); 
if(rad == 2){ 
id = this.id; 
arr[i] = $('input[type="text"]#'+id).val(); 
} 
else{ 
arr[i] = $(this).val(); 
} 
i++; 
}); 
alert(arr); 
i = 0; 
}); 

使用這個腳本只給我的文本框的重複值。 「是」和「否」(0和1)值不會出現。

回答

1

單擊按鈕並選擇「僅限」收音機時,將.next()輸入字段的值打印到控制檯。

Demo on jsbin

$("button").click(function(){ 
    $("input[type=radio]:checked").each(function(){ 
     if($(this).val() == 2) { 
     console.log($(this).next("input[type=text]").val()); 
     } 
    }); 
    }); 
+0

感謝您的回答!我也學到了一種新的語法。也爲此感謝。 – JohnSmith

0

夠簡單。

if (jQuery("input[name='c1']:checked").val() === '2') { 
    return jQuery("#t1").val(); 
} 

您可以添加一些額外的邏輯來動態生成c1t1字符串,使其通用性。

+0

如果我有很多的單選按鈕和文本框的?目前我使用.each()來獲取我單選按鈕的值 – JohnSmith

+1

@JohnSmith - 然後添加額外的邏輯將是一個非常好的主意。 – Quentin

相關問題