2011-11-29 188 views
11

我借用/修改了这个简单的html/javascript表单,它将一些数据设置在数据库中。原始代码使用表单中的文本字段,但我使用单选按钮。下面的前三步都是原装的,我的问题来了之后......即了,我给单选按钮相同的ID ...希望这是明确的......两个单选按钮共用一个“ID”?

第1步:用户输入值成形式ID为“缺口”与id关联

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

步骤2.值“缺口”分配给变量使用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”中。

+0

元素不能共享一个id。它会导致意想不到的行为,特别是在使用JavaScript时。 – mrtsherman

+1

单选按钮的名称可能是相同的不是ID,所以你可以尝试像这样** var inputUser = $(“:input [name = interview]:checked”).val(); **选定单选按钮值* * – punit

+0

请参考HTML 4.01规范,它说重复的ID是不允许的,自1999年的规范以来没有改变。 http://www.w3.org/TR/REC-html40/ –

回答

16

没有,一个id属性应始终是唯一的。如果您使用jQuery(看起来像您),您可以使用$('input[name=interview]');进行选择。

+0

谢谢,我是一个新手,请确认我分配值的整个行将如下所示:var inputUser = $('input [name =面试]'); – Leahcim

+0

@Michael,对,那里的jQuery选择器将会获得所有“名称”设置为“采访”的输入。 inputUser将存储这个jQuery对象。 – Matthew

+0

我想这个,但它告诉我变量是undefined http://stackoverflow.com/questions/8320980/how-to-figure-out-where-this-database-insertion-and-retrieval-is-breaking – Leahcim

0

必须指定名称相同,但不同的ID以input type=radio,因为这是你需要选择从givel AAL单选按钮只有一个值RAIDO按钮的基本属性。

但该ID不应当被分配给其它形式的元件

0

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

0

相反id="nick"

您可以使用name="nick"

或者

class="nick" 
+0

所以这将工作? var inputUser = $(“。nick”);用[。]代表班级? – Leahcim

+0

@Michael Ya可以通过$ .each()来工作'$(“。nick”)'...你可以用这个获得所有的值....更好的方法是通过名称'$('input [名称=尼克]')'会给你选定的值.... – Wazzzy

1

不要重复id's.It是最好的做法是使用每页只有一个ID,因为它必须是唯一的。您可以使用name属性对单选按钮进行分组。

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

13

由于您使用jQuery,你可以很容易地通过使用:checked选择获得所选择的单选按钮的值:

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

你绝对不应该给一个以上的元素相同的ID(这是无效的HTML和会导致你的JavaScript中的错误混淆),但即使这样做也无济于事,因为作为一个组的单选按钮没有选定的值:你需要确定当前选中哪一个,然后获取它值如上所示。 (当实际提交表单时,在获取网络服务器上的值时这不是问题,因为只有来自选中无线电的值才会被提交。)

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

4

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

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

我试过你的解决方案,但它告诉我变量是未定义的。 http://stackoverflow.com/questions/8320980/how-to-figure-out-where-this-database-insertion-and-retrieval-is-breaking – Leahcim

1

如果想使用你必须使用纯JavaScript ..

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

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

为了解决这个问题,javascript库是使用(库将处理问题)。为此使用以下...

$('input[name=radio_btn_name]:checked').val(); 
相关问题