两个单选按钮共享一个"id"?



我借用/适应这个简单的html/javascript表单设置,把一些数据在数据库中。原始代码在表单中使用文本字段,但我使用单选按钮。下面的前三个步骤是原始的,我的问题是,我是否给单选按钮相同的id…

步骤1。用户输入id为"nick"的值

<tr>  
    <td><label>User</label></td>  
    <td><input class="text user" id="nick" type="text" MAXLENGTH="25" /></td>  
</tr>  

步骤2。与id "nick"相关联的值使用id

赋值给变量
var inputUser = $("#nick");  

步骤3。从变量中获取要插入到数据库中的值…

if(inputUser.attr("value")

但是如果它是两个"单选按钮"而不是一个"文本"字段....

<td><label>Interview</label></td>  
<td><input type="radio" name="interview" id="nick" value="pass" />Pass</td>
<td><input type="radio" name="interview" id="nick" value="fail" /> Fail</td>

我是否给单选按钮相同的"id",以便它仍然像这样,当我赋值给变量…

var inputUser = $("#nick"); 

因此,无论哪个按钮被选中将分配发现在id "nick"?

不,Id属性必须是唯一的。如果您正在使用jQuery(看起来是这样),您可以使用$('input[name=interview]');选择它。

因为你使用的是jQuery,你可以很容易地获得选中的单选按钮的值,通过使用:checked选择器:

$("input[name=interview]:checked").val()

你绝对不应该给多个元素相同的ID(这是无效的HTML,会导致JavaScript中令人困惑的错误),但即使它在这种情况下也没有帮助,因为单选按钮作为一个组没有选择值:你需要确定哪个是当前选中的,然后得到它的值,如上所示。(当表单实际提交时,在web服务器上获取值时,这不是问题,因为只有选中的单选项中的值才会被提交。)

还请注意,在您的原始代码中,您说的是inputUser.attr("value"),您可以说inputUser.val()

ID属性在整个页面中是唯一的。您应该为每个单选按钮设置不同的id。使用下面的代码获取输入值。

var inputUser=$('input:radio[name=interview]:checked').val();

如果你想使用纯javascript,你必须使用…

document.querySelector('input[name=radio_btn_name]');

,但它需要更新浏览器。旧的浏览器可能导致错误。

要克服这个问题,javascript库是使用(库将处理这个问题)。为此,使用下面的..

$('input[name=radio_btn_name]:checked').val();

不要重复id。最佳实践是每个页面只使用一个id,因为它必须是唯一的。您可以使用name属性对单选按钮进行分组。

使用$('input[name=interview]')获取值

您必须为input type=radio分配相同的名称但不同的id,因为这是单选按钮的基本属性,您只需要从给定的所有单选按钮中选择一个值。

但该id不应该分配给其他表单元素

分配给元素的id在文档中必须是唯一的。所以,不,你不应该使用相同的id

而不是id="nick"

可以使用name="nick"

class="nick"

它为我工作,我在2个输入中使用了相同的id健康。

var health =$('input:radio[id=health]:checked').val();

最新更新