如果选择了特定的单选按钮,如何获取文本框的值?

时间:2012-07-01 12:48:33

标签: javascript jquery radio-button

我有以下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>

如果选中的单选按钮为“Only”,我想获取文本框的值。关于如何做的任何想法?

这是我目前的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)值不会出现。

2 个答案:

答案 0 :(得分: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());
      }
    });
  });

答案 1 :(得分:0)

足够简单。

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

您可以添加一些额外的逻辑来动态生成c1t1字符串,使其成为通用字符串。