Javascript - If语句的条件依赖于2个单独的表单id


Javascript - If statement with conditions dependent on 2 separate form id

我正试图隐藏一个div,这取决于上面两个问题的答案。都得是"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>

您可以通过在查询中添加: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
});

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

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

您不能在文档中使用相同的ID两次,所以更改它,并根据名称定位元素,检查'N'值是否被选中,并在此基础上切换元素的可见性:

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);
});

小提琴

你的问题有点不清楚,

 <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提琴获取名称,值和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();
})

请补充一些细节,你还需要什么?