两个单独的文本框;id”;属性

Two separate text boxes with same "id" attribute

本文关键字:id 属性 文本 两个 单独      更新时间:2023-09-26

我有一个具有相同名称和id的文本框,我想获取特定文本框的值并进行验证,有人能帮助我实现这一点吗,因为我是新手。

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

<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

非常肮脏的做事方式

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

<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">

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

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

并不是说你应该有两个或多个相同的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;
    }
}
$("#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/

相同的名称就足够了!

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

感谢您的帮助,我使用id="{concat('xtboxAdjustment',position())}"在循环中,它已经完成了,但我对阅读所有评论的主题有很好的想法,所以再次感谢。