jquery - 如何在 data() 对象中存储表单值?

标签 jquery forms dom

是否有一种简单的方法可以在提交后将表单数据存储在 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 » childrenmyform » #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/

相关文章:

javascript - 取消一个 jquery submit() 方法

c# - 网站 |表单认证 |获取所有登录用户(所有用户列表或计数)

mysql - 有问题的归一化

javascript - 如何使用父页面 css 为 iframed 页面内容提供样式?

jQuery 在 IE8 anchor 标记中添加它自己的 session 属性?

javascript - 查找选择器的第一个父级

javascript - 从事件页面更改选项卡的 DOM

javascript - 如何解决 "Could not convert JavaScript argument arg 0 [nsIDOMHTMLDivElement.appendChild]"错误

javascript - 无法检测到 Chrome Android 中的网页滚动结束

javascript - 如何通过 jquery 验证总和?