两个单选按钮共享一个“id”?

时间:2011-11-29 04:43:52

标签: javascript html

我正在借用/调整这个简单的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

分配给变量的id“nick”相关联的值
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”中找到所选的按钮?

8 个答案:

答案 0 :(得分:20)

不,Id属性应始终是唯一的。如果你正在使用jQuery(看起来像你),你可以用$('input[name=interview]');选择它。

答案 1 :(得分:14)

由于您使用的是jQuery,因此您可以使用:checked选择器轻松获取所选单选按钮的值:

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

你绝对不应该给多个元素提供相同的ID(这是无效的HTML并且会导致JavaScript中出现令人困惑的错误),但即使这样做有效也无济于事,因为单选按钮作为一个组没有选定的值:您需要确定当前检查的是哪一个,然后如上所示获取其值。 (当实际提交表单时,在获取Web服务器上的值时这不是问题,因为只有已检查的无线电的值才会被提交。)

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

答案 2 :(得分:4)

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

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

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

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

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

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

答案 5 :(得分:0)

您必须为input type=radio指定相同名称但不同的ID,因为这是raido按钮的基本属性,您只需从Givel aal单选按钮中选择一个值。

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

取代 id="nick"

您可以使用name="nick"

class="nick"