FormData未填写

时间:2016-04-22 11:04:32

标签: jquery html5 form-data

FormData中我无法理解。

这是我的代码:

<!DOCTYPE html>
<html>
<script src="bower_components/jquery/dist/jquery.min.js"></script>
</script>
<script>
$(function () {
    $('form').on('submit', function (e) {
          e.preventDefault();
          var form_data = new FormData($('form')[0]);
    });
});
</script>

<body>

<form>
<input name='a' value='vala'/>
<input name='b' value='valb'/>
<input name='c' value='valc'/>
<input type='submit' value='sub'/>
</form>

</body>
</html>

如果我在Chrome中调试我的代码,我希望form_data对象填充我的表单输入名称和值。

但似乎总是空洞的。

我哪里错了?

form_data empty?

2 个答案:

答案 0 :(得分:1)

FormData个对象的行为与典型的key => value原则不同。它们意味着最终被添加和提交,而不是被访问/修改。

Chrome和Firefox似乎支持从FormData阅读。见https://developer.mozilla.org/en-US/docs/Web/API/FormData/getAll

答案 1 :(得分:0)

您根本不需要遍历表单字段,因为您可以将form元素提供给FormData()构造函数。试试这个:

$('form').on('submit', function (e) {
      e.preventDefault();
      var form_data = new FormData($('form')[0]);
      // ajax here...
});