2013-05-03 16 views
5

Witam Mam problem z przypisaniem pojedynczych wartości do wielu pól wprowadzania. Próbuję wiele sposobów, ale przypisuje tylko 1 pole tekstowe. Jak mogę przypisać wiele pól tekstowych.Przypisywanie wartości dla wielu pól wprowadzania przy użyciu javascript?

Uwaga: Mam taki sam identyfikator dla wszystkich pól wprowadzania.

Mój kod znajduje się poniżej

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

Czy ktoś może pomóc?

Odpowiedz

6

Przypisuje tylko jedną wartość, ponieważ identyfikatory powinny być unikalne; w związku z tym ostatecznie celujesz tylko w pierwszą z tą wartością.

Zmień HTML użyć klasy zamiast:

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

Następnie można odpowiednio dostosować JavaScript.


jQuery

w jQuery, można następnie ustawić wartość przy użyciu:

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

jQuery jsFiddle here.


Czysta JavaScript

W języku Javascript można użyć getElementsByClassName() i iterować przez nie, nadając im tę samą wartość.

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

Pure JavaScript jsFiddle here.

+1

+1, miał ten sam problem jakiś czas bak! –

+1

Dziękuję bardzo –

0

Atrybut id ma być wyjątkowy, tak o tych samych id kilkakrotnie jest nieważny html i większość przeglądarek po prostu zignorować wszelkie wejścia z id s, które już istnieją int on drzewo dom.

Strona poprzednia: Aby ustawić wartość kilku identyfikatorów (za pomocą jquery), należy użyć funkcji val() i selektora, który wybiera wszystkie odpowiednie dane wejściowe w ten sposób (wygląda to o wiele bardziej czysto, aby mieć to w jedno-liniowej, a nie przylegającej do czystego javascript):

$('#myid1, #myid2, .myclass1').val('new value'); 
0

Przede wszystkim identyfikatory mają być unikalne. Dodaj atrybut class lub name. Ale głównym problemem jest tutaj:

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

Powinno być

inputs[i].value="1"; 

Masz już element, nie ma potrzeby, aby go odnaleźć.

Powiązane problemy