7

嗨,我在为多个输入框分配单个值时遇到问题。我正在尝试很多方法,但它只分配了 1 个文本框。如何分配多个文本框。

注意:我对所有输入框都有相同的 ID。

我的代码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script type="text/javascript">
function getInputs()
{
  var inputs = document.getElementsByTagName('input');
  var ids = new Array();
  for(var i = 0; i < inputs.length; i++)
  {
    if(inputs[i].getAttribute('id').toLowerCase()== 'myid')
    {       
       document.getElementsById('myid').value="1";
    }
  }   
}    
window.onload = getInputs;
</script>
</head>
<body>
<form>
  <input type="text"  id="myid"><br>
  <input type="text"  id="myid"><br>
  <input type="text"  id="myid"><br>
  <input type="text"  id="myid"><br>
</form>
</body>
</html>

任何人都可以帮忙吗?

4

4 回答 4

13

它只为其中一个分配一个值,因为 ID 应该是唯一的;因此,您实际上只会使用该值分配来定位第一个。

将您的 HTML 更改为使用类:

<input type="text"  class="myids"><br>
<input type="text"  class="myids"><br>
<input type="text"  class="myids"><br>
<input type="text"  class="myids"><br>

然后,您可以相应地调整您的 JavaScript。


jQuery

在 jQuery 中,您可以使用以下方法设置值:

$('.myids').val('value for all of them here');

jQuery jsFiddle 在这里。


纯 JavaScript

在 Javascript 中,您将使用getElementsByClassName()并遍历它们,赋予它们相同的值。

var x = document.getElementsByClassName('myids');
for(i = 0; i < x.length; i++) {
  x[i].value = "New!";
}

纯 JavaScript jsFiddle 在这里。

于 2013-05-03T09:43:49.820 回答
4

id属性应该是唯一的,因此id多次使用相同的html 是无效的,并且大多数浏览器将简单地忽略iddom 树中已经存在的任何带有 s 的输入。

旁注:要设置几个 id 的值(通过 jquery),请使用该val()函数和一个选择器来选择所有相应的输入,如下所示(与坚持使用纯 JavaScript 相比,将其放在单行中看起来更简洁):

$('#myid1, #myid2, .myclass1').val('new value');
于 2013-05-03T09:45:41.313 回答
0

首先,ID 应该是唯一的。所以添加一个classorname属性。但你的主要问题在这里:

document.getElementsById('myid').value="1";

它应该是

inputs[i].value="1";

您已经拥有该元素,无需再次找到它。

于 2013-05-03T09:47:19.743 回答
0

将输入框放入带有 ID 或 Class 的 div 容器中。然后使用以下代码。

$('#divID').find('input:text').val('your value');

或者

$('.divClass').find('input:text').val('your value');

如果您将 ID 用于 div,则使用第一个,第二个用于作为选择器的类。此代码将在该特定 div 容器中为您找到所有输入文本框,并将您的值分配给它们。

于 2019-01-29T04:54:29.497 回答