HTML输入数组:如何使用javascript获取html输入数组值

时间:2016-08-14 16:51:26

标签: javascript html arrays input

我有这个代码工作正常!:



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

	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>
&#13;
&#13;
&#13;

我试图用这样的数组来捕获输入值:

&#13;
&#13;
<script>
function get(user){
	alert(user["firstname"].value);

	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>
&#13;
&#13;
&#13;

我尝试了很多不同的场景,没有意义:(

任何暗示都会受到赞赏。

2 个答案:

答案 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>

答案 1 :(得分: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()})
    })
}