两个具有相同“id”属性的单独文本框

时间:2013-07-25 03:44:34

标签: javascript jquery

我有一个具有相同名称和ID的文本框,我希望获得特定文本框的值并进行验证,有些人可以帮助如何实现这一点,因为我是新手。

文本框名称,id相同但值不同。

7 个答案:

答案 0 :(得分:3)

<input type=text  id='test' value="1">
<input type=text  id='test' value="2">

document.getElementsByTagName('input')[0].value  //1
document.getElementsByTagName('input')[1].value  //2

非常肮脏的做事方式

答案 1 :(得分:3)

正如已经指出的那样,你不应该有两个具有相同标识符的元素。

<input type="text" id="test" name="test" value="1">
<input type="text" id="test" name="test" value="2">

但是,如果你想根据其价值选择一些东西(通常是一个坏主意),你可以这样做:

$(':input[value="2"]')

更好的方法是使用两个独特的文本框:

<input type="text" id="test1" name="test" value="1">
<input type="text" id="test2" name="test" value="2">

答案 2 :(得分:3)

不应该有多个具有相同ID的元素。您可以为两个元素分配相同的类,然后访问它。

document.getElementsByClassName('test')[0]  //1
document.getElementsByClassName('test')[1] //2

答案 3 :(得分:3)

并不是说您应该拥有两个或更多相同的ID,但如果您这样做,请按照以下方式处理:

jQuery的:

var inputs  =  $('input#my_id')
  , val1    =  inputs.eq(0).val()
  , val2    =  inputs.eq(1).val()
  ;

普通JavaScript

var inputs = document.getElementsByTagName('input');
var input, val1, val2;
foreach ( var i in inputs )
{
    // This code may not work, but you get the idea
    input = inputs[i];
    if (input.id == 'test')
    {
        if ( !val1 ) val1 = input.value;
        else if ( !val2 ) val2 = input.value;
        else break;
    }
}

答案 4 :(得分:0)

$("#test").val();

它只选择具有给定ID的第一个元素。 您可以通过指定标记

进一步优化您的选择
<input type=text class='fo' id='test' value="1">
<input type=text class='fp' id='test' value="2">

$("[id=test][class=fp]").val();

http://jsfiddle.net/suhailvs/KY9Tu/

答案 5 :(得分:0)

同样的名字足以做到这一点!

alert($("input[name='txtboxName']").eq(0).val());
alert($("input[name='txtboxName']").eq(1).val());

答案 6 :(得分:0)

感谢您的帮助,我使用了不同名称的文本框  id =“{concat('txtboxAdjustment',position())}”内部循环已完成,但我对阅读所有评论的主题有了很好的了解,所以再次感谢。