使用jQuery或JavaScript访问表单(或其他包含元素)中的元素

时间:2015-08-21 13:59:59

标签: javascript jquery

我有一个form元素,其中包含一堆input元素(但是,如果不是form,我希望它是相同的,输入是在给定的{ {1}})。 JavaScript需要多次表单中的值。我没有使用一堆div脚本,而是如何抓取表单中的所有内容,然后使用像var id=$('#id').val();这样的值?

mainForm.id

修改

不完美,但也许只是:

<form method="post" id="mainForm">
    <input id="id" name="id" type="hidden" value="1" />
    <input id="cid" name="cid" value="pages" type="hidden" />
    <input id="task" name="task" value="delete" type="hidden" />
    <input id="controller" name="controller" value="display" type="hidden" />
    <input id="CSRF" name="CSRF" value="123" type="hidden">
</form>

2 个答案:

答案 0 :(得分:2)

尝试创建一个空对象,利用$.each()填充id属性input的对象,value input的对象值

var obj = {};

$.each($("#mainForm input"), function(key, val) {
  obj[val.id] = val.value
});

console.log(obj)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<form method="post" id="mainForm">
  <input id="id" name="id" type="hidden" value="1" />
  <input id="cid" name="cid" value="pages" type="hidden" />
  <input id="task" name="task" value="delete" type="hidden" />
  <input id="controller" name="controller" value="display" type="hidden" />
  <input id="CSRF" name="CSRF" value="123" type="hidden">
</form>

没有jQuery

var obj = {};
var inputs = document.querySelectorAll("#mainForm input");
[].forEach.call(inputs, function(val, key) {
  obj[val.id] = val.value;
});

console.log(obj)
<form method="post" id="mainForm">
  <input id="id" name="id" type="hidden" value="1" />
  <input id="cid" name="cid" value="pages" type="hidden" />
  <input id="task" name="task" value="delete" type="hidden" />
  <input id="controller" name="controller" value="display" type="hidden" />
  <input id="CSRF" name="CSRF" value="123" type="hidden">
</form>

答案 1 :(得分:1)

$('#mainForm input').each(function() {
    // do what you want with the input here 
    // console.log($(this).attr('id')); will print the id of every input for example
});