2015-09-04 112 views
1

在我的页面上,我有两个单选按钮,分别是yes和两个单选按钮。 我如何做到这一点,如果我在一个地方检查是,它检查第二个是按钮,或者如果我检查没有第二个否将检查太。选择具有相同名称,ID,值的两个单选按钮

以下是我的代码:

<fieldset> 
    <input checked="checked" id="search_by_range_no" name="search_by_range" type="radio" value="no"> 
    <input class="input-long" id="size10" name="size10" type="text" value="27"> 
    <br> 
    <input id="search_by_range_yes" name="search_by_range" type="radio" value="yes"> 
    <input class="input-long" id="size1" name="size1" type="text" value="15 - 150"> 
    <br> 
    <input checked="checked" id="search_by_range_no" name="search_by_range" type="radio" value="no"> 
    <input class="input-long" id="size20" name="size20" type="text" value="65"> 
    <br> 
    <input id="search_by_range_yes" name="search_by_range" type="radio" value="yes"> 
    <input class="input-long" id="size2" name="size2" type="text" value="25 - 250"> 
    <br> 
</fieldset> 

我怎么可以在同一时间选择两个电台吗?

+3

'id'必须是** **独特,_always_ – Tushar

+0

没有任何理由保持相同的ID的,它应该是 –

+0

页面上唯一保持相同的'id'的几个元素是坏主意。而是使用'class'并使用复选框来检查它 –

回答

1

您不能在同一收音机组中检查多个按钮。你需要给两组不同的名字。我用search_by_range_Asearch_by_range_B。 ID也必须是unix。

要使其自动检查另一个按钮,请使用.change()处理程序获取该值,然后选择具有相同值的另一个复选框并进行检查。

$(":radio").change(function() { 
 
    var value = $(this).val(); 
 
    $(":radio[value=" + value + "]").prop("checked", true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<fieldset> 
 
    <input checked="checked" id="search_by_range_A_no" name="search_by_range_A" type="radio" value="no"> 
 
    <input class="input-long" id="size10" name="size10" type="text" value="27"> 
 
    <br> 
 
    <input id="search_by_range_A_yes" name="search_by_range_A" type="radio" value="yes"> 
 
    <input class="input-long" id="size1" name="size1" type="text" value="15 - 150"> 
 
    <br> 
 
    <input checked="checked" id="search_by_range_B_no" name="search_by_range_B" type="radio" value="no"> 
 
    <input class="input-long" id="size20" name="size20" type="text" value="65"> 
 
    <br> 
 
    <input id="search_by_range_B_yes" name="search_by_range_B" type="radio" value="yes"> 
 
    <input class="input-long" id="size2" name="size2" type="text" value="25 - 250"> 
 
    <br> 
 
</fieldset>

1

又一次......在网页上每个元素的ID应该是唯一的

改为使用类。

但是,尽管如此,仍然有可能实现这一点。您必须更改代码中的唯一内容是单选按钮的name,因为所有具有相同名称的单选按钮都假定为一个组,并且网页浏览器仅允许默认仅选择其中一个,你无法控制。

因此更改名称以将单选按钮重新分组为两个不同的集合。

然后,你可以这样做:

$("[id^='search_by_range']").change(function(){ 
    $("[id='"+$(this).attr("id")+"']").prop("checked", "checked"); 
}); 

Here is the JSFiddle demo

+0

网页上每个元素的ID应该是唯一的!这是对的 – Smoke

0

你可以使用JavaScript的这个问题 在这里,我可以给你提示你怎么能做到!

$('#search_by_range_yes').attr('checked','checked'); 
$('#search_by_range_yes').addAttr('checked'); 

这将有助于:)

感谢

0

在同一组单选按钮,你可以不检查不止一个。我为此使用了两个不同的组。

找到下面的代码:

<fieldset> 
    <input checked="checked" id="search_by_range_no" name="search_by_range" type="radio" value="no"> 
    <input class="input-long" id="size10" name="size10" type="text" value="27"> 
    <br> 
    <input id="search_by_range_yes" name="search_by_range" type="radio" value="yes"> 
    <input class="input-long" id="size1" name="size1" type="text" value="15 - 150"> 
    <br> 
    <input checked="checked" id="search_by_range_no" name="search_by_range_second" type="radio" value="no"> 
    <input class="input-long" id="size20" name="size20" type="text" value="65"> 
    <br> 
    <input id="search_by_range_yes" name="search_by_range_second" type="radio" value="yes"> 
    <input class="input-long" id="size2" name="size2" type="text" value="25 - 250"> 
    <br> 
</fieldset> 

JS代码:

$(function() { 
    $(":radio").on("change", function() { 
     var val = $(this).val(), checked = this.checked; 
     var others = $(":radio[value='"+val+"']").not(this); 
     others.prop('checked', true); 
    }); 
}); 

你可以找到演示在这里工作:http://jsfiddle.net/26g5rxs6/

0

1.I理解您的问题,这些情况发生,因为所有无线电按钮具有相同的名称。

2.同名单选按钮只有一个组,并且只在该组中选择。

3.您可以按单选按钮1.按no搜索2.按范围搜索。我通过下面的代码更新了你的代码。

<fieldset> 
    <input checked="checked" id="search_by_range_no" name="search_by_no" type="radio" value="no"> 
    <input class="input-long" id="size10" name="size10" type="text" value="27"> 
    <br> 
    <input id="search_by_range_yes" name="search_by_range" type="radio" value="yes"> 
    <input class="input-long" id="size1" name="size1" type="text" value="15 - 150"> 
    <br> 
    <input checked="checked" id="search_by_range_no" name="search_by_no" type="radio" value="no"> 
    <input class="input-long" id="size20" name="size20" type="text" value="65"> 
    <br> 
    <input id="search_by_range_yes" name="search_by_range" type="radio" value="yes"> 
    <input class="input-long" id="size2" name="size2" type="text" value="25 - 250"> 
    <br> 
</fieldset> 
相关问题