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

时间:2013-05-28 09:21:15

标签: php jquery

我试图隐藏一个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>

4 个答案:

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

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

答案 1 :(得分: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

答案 2 :(得分:1)

您不能在文档中两次使用相同的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);
});

FIDDLE

答案 3 :(得分: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小提琴,点击单选按钮获取名称,值和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();

})

请添加一些您需要的其他详细信息吗?