是否有一种简单的方法可以在提交后将表单数据存储在 data()
对象中?
假设这是我的表格:
<form id='myform'>
<input type='text' name='bar' value='lorem'/>
<input type='text name='foo' value='ipsum'/>
</form>
提交后数据应该这样存储:
$("#myform").data('bar','lorem');
$("#myform").data('foo','ipsum');
最佳答案
你可以这样做:
$('#myform').submit(function(e) {
e.preventDefault(); // don't submit the form
var form = $(this); // store it for later reference
form.children('input').each(function() {
form.data($(this).attr('name'), $(this).attr('value'));
});
});
编辑:我的代码中有一些错误(getChildren
» children
,myform
» #myform
) – 我现在已经更正了它。
请注意,此脚本不提交表单。您可以添加some nifty ajax要做到这一点 :) http://docs.jquery.com/Ajax/serialize
更新:实际上,jQuery已经内置了这个功能:form.serialize()
。它返回一个有效的查询字符串:
<form id="myForm">
<input type="radio" value="A" name="foo" checked="checked" /> A<br />
<input type="radio" value="B" name="foo" /> B
<input type="text" name="bar" value="Bla bla" />
</form>
<script>
var queryString = $('#myForm').serialize(); //foo=A&bar=Bla+bla
</script>
关于jquery - 如何在 data() 对象中存储表单值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/763345/