【问题标题】:What is the use of serialize method of JqueryJquery的serialize方法有什么用
【发布时间】:2014-05-29 00:17:35
【问题描述】:

为什么我们需要serialize 方法。它附加了表单数据,但http get 也是如此,那我们为什么需要它呢?

The serialize() method creates a URL encoded text string by serializing form values.

我为什么要使用它。如果我了解它的正确用法,我将学习在我的表单中使用它的更好做法。

【问题讨论】:

  • 主要用作为 ajax 序列化表单数据的快速方法

标签: jquery ajax forms web-applications


【解决方案1】:

在发出 AJAX 请求时,可以在 URL 查询字符串中使用序列化值。

信息取自W3 Schools

与使用 jQuery 获取表单中的所有值然后提交到外部页面不同,.serialize() 会自动为您完成。因此,在您的外部页面中,您可以通过 URL 获取您需要的内容并随意操作它

例子是:

你有这样的表格:

<form action="#"  id="input_form">
    first name: <input type="text" name="first name" /><br />
    last name: <input type="text" name="last name" /><br />
    email: <input type="text" name="email" /><br />
    <input type="submit" value="send" name="submit" />
</form>

您可以像这样使用 AJAX 请求:

$(document).ready(function(){
    $("#input_form").submit(function(){
        var first name = $('input[name=first name]').val();
        var last name = $('input[name=last name]').val();
        var email = $('input[name=email]').val();
        var querystring = "first name="+first name+"&last name="+last name+"&email="+email;

        $.ajax({
            url: 'elaboration.php',
            type: "POST",
            data: querystring,
            success: function(data) {
                //code to execute
                    }
            });
            return false;
        });
    });

不要这样做:

var first name = $('input[name=first name]').val();
var last name = $('input[name=last name]').val();
var email = $('input[name=email]').val();
var querystring = "first name="+first name+"&last name="+last name+"&email="+email;

您可以使用 .serialize() 来代替:

var querystring = $(this).serialize();

.serialize() 从本质上为您节省了一些时间和精力来获取表单中的每个值。

Sauce

【讨论】:

  • 我还是不明白为什么要使用上面的而不是'get'
  • 不是使用 jQuery 获取表单中的所有值然后提交到外部页面,.serialize() 会自动为您完成。因此,在您的外部页面中,您可以通过 URL 获取所需内容并随意操作。
  • 或者你也可以用它来发帖
  • @AkiraDawson 你能详细说明一下吗?而不是使用 jQuery 来获取表单中的所有值,然后提交到外部页面
  • @fscore 我只是在想我自己,就在我的脑海中,这对于非敏感数据(例如姓名,日期等)会很好。对于更敏感的数据,例如密码,信用卡信息,老实说,我不知道。我不知道 jQuery 在将其发送到服务器之前是否提供某种加密客户端,也许使用安全链接(https)。我知道服务器端代码,您可以加密数据并将其存储在数据库中。但是客户端,我不知道对不起。
猜你喜欢
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 2011-11-18
  • 1970-01-01
  • 2023-03-16
  • 2010-11-13
  • 1970-01-01
相关资源
最近更新 更多