从表单中获取所有表单字段并将其保存在数组

时间:2018-03-12 05:25:28

标签: javascript jquery

在表单提交中,我想获取所有表单字段并将它们保存在数组中。但是文本框,选择框,输入字段,复选框和单选按钮很少。这是一个内置在WordPress中的动态表单,用户可以从后端更改这些字段。 这是我的代码

<script>
var form_label = [];
var form_value = [];
i = 0;
jQuery('#form6 .wdform-field').each(
function(index){  
var form_label[i++] = jQuery(this).find(label).text();
var form_value[i++] = jQuery(this).find(input).val();
}
);
</script>

在每个表单字段之外有div个类wdform-field,但我不知道此字段将是输入字段,复选框或文本区域。现在正如上面的代码中提到的那样,它仅适用于输入字段,但它不适用于其他表单字段,如文本区域或复选框。因此,在这种情况下,我如何正确地从所有表单字段中获取这些值及其标签。
非常感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

可能是我无法很好地解释我的问题。但是这段代码对我有用。

<script>
var form_label = new Array();
var form_value = new Array();

jQuery('#form6 .wdform-field').each(
    function(index){
    form_label.push(jQuery(this).find('label').text());
    form_value.push(jQuery(this).find(':input').val());
}
);
</script>

使用此代码,我可以从所有表单字段中获取值.find(':input') 并且值现在也在数组中正确保存。

答案 1 :(得分:0)

使用SerializeArray()获取数组

中的表单字段
jQuery(form.event).serializeArray();

答案 2 :(得分:0)

您必须在输入,按钮,复选框,广播,文本区域等中添加属性“name”

并使用序列化来获取表单字段

更多信息https://api.jquery.com/serialize/

答案 3 :(得分:0)

正如其他答案中所指出的那样,输入可以通过Jquery的Serialize / SerializeArray捕获。

$( "form" ).on( "submit", function( event ) {

  document.write(JSON.stringify($( this ).serializeArray()));
  event.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<form name="tstForm">
<input type="text" value="Jor" name="txtName" />
<input type="text" value="Dar" name="txtLastName" />
<select name="Qual">
 <option>A</option>
 <option>B</option>
 <option>C</option>
 <input type="submit" />
</select>
</form>
</div>