Javascript изменить значение полей по имени

У меня есть форма, где некоторые поля имеют одно и то же имя элемента. Есть ли способ, чтобы изменить значение всех полей с одинаковым именем?

3 ответов


1) Использовать getElementsByName чтобы поместить элементы в массив.
2) Цикл по массиву и значение каждого элемента.

код:

var els=document.getElementsByName("yourElementNameHere");
for (var i=0;i<els.length;i++) {
els[i].value = "yourDesiredValueHere";}

Если вы хотите изменить только элементы с этим именем в форме, используйте форму вместо document, например: document.getElementById("yourFormID").getElementsByName(...)


вы можете сделать более простым с JQUERY пример :

HTML-код

<div id="form">
<input type="text" name="myinput" vale="yussan" />
</div>

js

var value = $('#form input[name=myinput]').val()

образец форма

<form name="form1">
    <input type="button" name="buttons" value="button1">
    <input type="button" name="buttons" value="button2">
    <input type="button" name="buttons" value="button3">
</form>

скрипт

var form = document.form1;    // form by name 
var form = document.forms[0]; // same as above, first form in the document
var elements = form.buttons; // elements with same name attribute become a HTMLCollection
for (var i=0; i<elements.length; i++) 
   elements[i].value = elements[i].value.replace("button", "buttoff");

http://jsfiddle.net/yGV3R/