jQuery 的 .serialize() 不执行任何操作

标签 jquery serialization

我有一个相当简单的表单,其中包含一些复选框、单选按钮和选择框。我想使用 jQuery 的 $.ajax 发布所有选定的表单数据。但由于某种原因,表单没有被序列化。我不确定是什么原因造成的...(旁注: $('#FormID').submit(..) 对我也不起作用)。因此,我使用以下代码创建了一个按钮:

$(document).ready(function() {
    $('#DoSearchRequest').click(function(event) {
        //event.preventDefault(); // read about this somewhere, doesn't help
        $('#res').html($('#FormSearch').serialize()); // just some <p> to output the result to
        $.ajax({
            url:        'http://www.domain.nl/ajax/GetResultsBySearchRequest.php',
            data:       $('#FormSearch').serialize(),
            type:       'POST',
            success:    function(result) {
                            console.log(result);
                        },
            error: function(a, b, c) { console.log(a); }

        });

        return false;
    });
});

我的按钮位于表单之外(即使在表单中也没关系)。

我的表格:

<form name="FormSearch" id="FormSearch" method="post">
... form elements
</form>

我正在使用 jQuery 1.7.1 和 jQueryUI 1.8.18

最佳答案

愚蠢,但对我来说,我没有命名表单中的字段,因此 .serialize 给了我一个空字符串,而且 .serializeArray 不起作用.

请为您的表单字段命名,否则您将不会获得任何值。

<input name='importantField'/>

不等于

<input id='importantField'/>
如果您尚未在表单字段上定义任何名称,

.serialize.serializeArray 甚至默认表单提交都将不起作用。

关于jQuery 的 .serialize() 不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168484/

相关文章:

javascript - 当用户滚动时,将事件状态添加到链接中的导航

jQuery Filter divs By Class显示限制

javascript - jQuery 在同一个函数上绑定(bind)each() 和click()

php - 需要从数据库字段反序列化数据,以替换为纯文本

serialization - 如何使用 `emit_struct` 和 `emit_struct_field` 序列化自定义结构?

javascript - 鼠标悬停时暂停 Jquery 脚本

javascript - 将 jQuery 生成的表发送到另一个 php 页面

c# - 如何创建像 List<String,Object> 这样的集合?

python - 如何序列化请求Response对象为HAR

php - 为什么 PHP 中的反序列化总是返回 false?