2013-06-06 2 views
-2

Привет, я использую этот фрагмент кода для передачи фактического значения массиву. но я хочу передать значение, переданное из текстового поля, в массив, как это сделать?Как взять ввод из текстового поля в массив?

HTML код:

<input type="text" name="cost" value=" "> 
<input type="text" name="cost" value=" "> 
<input type="text" name="cost" value=" "> 

Javascript код:

multipliers = [5, 6, 5]; 

вместо 5,6,5 я должен получить значения из текстового поля, как это сделать?

ответ

-2
<form name="myForm"> 
     <input type="text" name="cost[]" value="1"> 
     <input type="text" name="cost[]" value="2"> 
     <input type="text" name="cost[]" value="3"> 
    </form> 


    var allElements= document.myForm.elements['cost[]']; 
    var arr= []; 

     for(var i=0; i<allElements.length; i++) 
     arr.push(allElements[i].value);  
+0

@downvoter Почему downvote.Reason для downvote – PSR

+1

Предоставление идентификатора каждому из них является ужасно неэффективным способом выполнения этого, и возникает вопрос о создании массива значений, а не узлов DOM. (И '[]' предпочитается над 'new Array()') – Quentin

+0

@Quentin Спасибо, я обновил свой код – PSR

0

Вы можете использовать document.querySelectorAll, так как вы, кажется, не имеющих идентификаторы для ваших элементов.

var nodes = document.querySelectorAll('[name=cost]'), // get all elements with name = cost 
    values = [], 
    i = 0; 
for(i=0; i<nodes.length; i++) 
    values.push(parseInt(nodes[i].value, 10)); 
console.log(values); 

Demo

+1

Вы можете использовать 'getElementsByName' для получения более четкого кода с большей совместимостью с браузером. – Quentin

+0

Ahh .. да. Интересно, почему я прибегал к предложению 'querySelectorAll' !!! – techfoobar

+0

@Quentin это лучше, чем 'querySelectorAll', но' getElementsByName' является ошибкой в ​​IE <10. – MrCode

1

Fiddle

Массив ввода было бы целесообразно:

<form name="myForm"> 
<input type="text" name="cost[]" value="1"> 
<input type="text" name="cost[]" value="2"> 
<input type="text" name="cost[]" value="3"> 
</form> 

Javascript:

var list = document.myForm.elements['cost[]']; 
var multipliers = []; 

for(var i=0; i<list.length; i++) 
{ 
    multipliers.push(list[i].value);  
} 

console.log(multipliers); 
Смежные вопросы