2016-08-14 120 views
0

我有這樣的代碼工作正常!:HTML輸入數組:如何獲得HTML輸入數組值使用javascript

<script> 
 
function get(userfirstname, userlastname){ 
 
\t alert(userfirstname); 
 

 
\t return false; 
 
} 
 
</script> 
 

 
<form action="" method="POST"> 
 
    <input type="text" name="userfirstname"> 
 
    <input type="text" name="userlastname"> 
 
    <input type="submit" onclick="return get(userfirstname.value, userlastname.value);"> 
 
</form>

我試圖用一個數組想趕輸入值這樣的:

<script> 
 
function get(user){ 
 
\t alert(user["firstname"].value); 
 

 
\t return false; 
 
} 
 
</script> 
 

 
<form action="" method="POST"> 
 
    <input type="text" name="user[firstname]"> 
 
    <input type="text" name="user[lastname]"> 
 
    <input type="submit" onclick="return get(user);"> 
 
</form>

我嘗試了很多不同的場景,沒有點:(

任何提示,將不勝感激。

+1

謝謝你的評論,我如何讓他們在對象? –

+0

你好! –

回答

1

你可以簡單地針對form元素的onclick處理程序中,查詢所有input元素,在它們之間迭代和構建array你正在尋找。

下面是一個例子,你可以做什麼來建立一個持有每個輸入元素名稱和值的對象數組,除了禁用一次和提交元素。

function get(evt){ 
 
    var fields = []; 
 
    event.target.parentElement 
 
    .querySelectorAll('input:not([disabled]):not([type="submit"])').forEach(function(e) { 
 
    fields.push({name: e.name, value: e.value}); 
 
    }) 
 
    console.log(fields); 
 
    return false; 
 
}
<form> 
 
    <input type="text" name="firstname" placeholder="Name"><br> 
 
    <input type="text" name="lastname" placeholder="Surename"><br> 
 
    <input type="text" name="foo" value="foo will be excluded" disabled><br> 
 
    <input type="submit" onclick="return get();"> 
 
</form>

+0

這是否像HTML數組輸入一樣工作?,像用戶[名字]和用戶[姓氏]? –

+1

不知道是否有像HTML Array Input *之類的東西。現在可能有服務器端語言,現在如何處理這些類型的輸入字段命名風格,將它們轉換爲'array',就像PHP一樣,我想。但我可以問爲什麼這對你很重要?從我給你的例子中,你可以建立一個數組或對象,以及你喜歡的任何結構。 name屬性中不需要數組語法。 – DavidDomain

+0

我試過你的代碼!它爲我工作,謝謝你,我的意思是HTML數組輸入,是這樣的:

1

一個jQuery的方法來得到這個

function get(){ 
    var fields = []; 
    var arr = $('form').not('input[type="submit"]').find('input[type="text"]') 
    $(arr).each(function(i,val){ 
     fields.push({name:$(val).attr('name'),value:$(val).val()}) 
    }) 
} 
你不能。在JS,你必須讓他們中的對象要做到這一點
+0

這似乎有點過於複雜。使用jQuery,您可以簡單地使用[.serializeArray()](https://api.jquery.com/serializeArray/),它完全可以做到這一點,還有更多。 ;) – DavidDomain

+0

你的代碼工作!謝謝:),如何,我想使用JavaScript代碼,所以先生@DavidDomain,解決了問題:) –