1

我试图隐藏一个 div,这取决于上面 2 个问题的答案。两者都需要为“N”才能隐藏。但是很难弄清楚如何将两个 ID 作为脚本中的变量。

希望你能帮助...

<div><table><tr>
<td><input name="v2_1a" type="radio" id="v2_1a" value="Y"></td>
<td><input name="v2_1a" type="radio" id="v2_1a" value="N"></td></tr>
<tr>
<td><input name="v2_1b" type="radio" id="v2_1b" value="Y"></td>
<td><input name="v2_1b" type="radio" id="v2_1b" value="N"></td>
</tr></table>
</div>
<script type="text/javascript">
$("input[name$='v2_1b']").click(function() {
$(".expand1").show();
var value1 = document.getElementById('v2_1a');
var value2 = $(this).val();
if (value1 == 'Y') {
$(".expand1").show();
}
else (value1 == 'N' && value2 == 'N') {
$(".expand1").hide();
}
});
</script> 
<div id="expand1" class="expand1" style="display:inline-block;">
</div>
4

4 回答 4

2

:checked您可以通过将选择器添加到查询中来获取单选组的选中值:

var value1 = $("input[name='v2_1a']:checked").val();
var value2 = $("input[name='v2_1b']:checked").val();

在http://api.jquery.com/checked-selector/阅读有关选择器的更多信息。


要检测任一无线电组中的更改,您可以使用以下代码:

$("input[name='v2_1a'],input[name='v2_1b']").change(function() {
  // Do your checks here
});

编辑:添加了一个关于如何检测任一无线电组更改的示例。

于 2013-05-28T09:27:21.417 回答
1

Ids必须是唯一的。没有两个元素具有相同的 id。您可以对它们应用相同的类

改变

  else (value1 == 'N' && value2 == 'N') {

else if(value1 == 'N' && value2 == 'N') {


var temp1 =     $('input:radio[name='v2_1a']:checked').val();
var temp2 =    $('input:radio[name='v2_1b']:checked').val();


if (temp1 == 'Y') 
   $(".expand1").show();

if(temp1  =='N' && temp2 == 'N')
 //hide
于 2013-05-28T09:23:09.613 回答
1

您不能在文档中两次使用相同的 ID,因此请更改它,并按名称定位元素,检查是否检查了两个“N”值,并根据该 ID 切换元素可见性:

var elems = $('input[name^="v2_1"]');

elems.on('change', function () {
    var n = elems.filter(':checked').length > 1 ? $.map(elems, function(e,i) {return e.checked?e.value:'N'}) : ['Y']
    $(".expand1").toggle(n.indexOf('Y') != -1);
});

小提琴

于 2013-05-28T09:26:49.483 回答
0

你的问题有点不清楚,

 <div>
<table>
    <tr>
        <th>Group 1</th>
    </tr>
    <tr>
        <td>Yes<input name="v2_1a" type="radio" class="radio" id="v2_1a_y" value="Y" /></td>
        <td>No<input name="v2_1a" type="radio" class="radio" id="v2_1a_n" value="N" /></td>
    </tr>
    <tr>
        <th> Group 2</th>
    </tr>
    <tr>
        <td>Yes<input name="v2_1b" type="radio" class="radio" id="v2_1b_y" value="Y" /></td>
        <td>No<input name="v2_1b" type="radio" class="radio" id="v2_1b_n" value="N" /></td>
    </tr>
</table>

这是一个 js fiddle,用于在单击单选按钮时获取名称、值和 ID。 http://jsfiddle.net/uvYgL/1/

JS

jQuery('body').on('click','.radio', function(){
  var id = jQuery(this).attr('id');
  var name = jQuery(this).attr('name');
  var input_val = jQuery('#'+id).val();

})

请添加一些细节您还需要什么?

于 2013-05-28T09:45:13.437 回答