通过AJAX提交的表单没有序列化所有组件,为什么?

时间:2016-11-30 14:32:26

标签: jquery html ajax forms serialization

我有以下HTML表单:

<form id="some_id">
    <select id="select1">...</select> // this turns in a Select2 component
    <select id="select2">...</select> // this turns in a Select2 component
    <select id="select3">...</select>
    <input type="text" name="inp1" id="inp1" />
</form>

我试图通过AJAX发送它,如下所示:

$.ajax({
    type: 'post',
    url: '/save',
    data: $('#new_component_restriction').serialize(),
    success: function () {
        alert('form was submitted');
    }
});

但是只有输入是在POST请求上发送的,为什么?我在这里遗失了什么?我是否需要获取SELECT的值并发送?

1 个答案:

答案 0 :(得分:5)

根据jQuery serialize() documentation

  

要使表单元素的值包含在序列化字符串中,该元素必须具有name属性。

因此,您应该为所有name="something"元素添加select。它发送&#39;输入&#39;有点奇怪。虽然元素。