Javascript 为什么ajax无法实现部分数据序列化?

Javascript 为什么ajax无法实现部分数据序列化?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下工作: jQuery( "input" ).on("blur", function(){ jQuery.ajax({ type: "POST", url: jQuery(this).closest("form").attr("action"), data: jQuery(this).closest("form").serialize() }); }); 不幸的是,上面序列化了整个表单,我不希望这样。我只想通过已更改的字段。

我有以下工作:

jQuery( "input" ).on("blur", function(){
    jQuery.ajax({
        type: "POST",
        url: jQuery(this).closest("form").attr("action"),
        data: jQuery(this).closest("form").serialize()
    });
});
不幸的是,上面序列化了整个表单,我不希望这样。我只想通过已更改的字段。顺便说一下,我没有访问表单的权限,只有html。有什么帮助吗?php是否可以要求发送所有参数?这是一个我将其发送到的框架,它处理所有数据库注入。你知道为什么下面的方法行不通吗

jQuery( "input" ).on("blur", function(){
    jQuery.ajax({
        type: "POST",
        url: jQuery(this).closest("form").attr("action"),
        data: jQuery(this).serialize()
    });
});
使用:


serialize()
函数用于表单提交,而不仅仅是输入。然后,如果只想传递当前编辑的输入,请将
名称
作为对象传递给
数据
参数。jQuery将为您序列化对象中的数据。

forms默认情况下在action中发送该表单上的所有字段您应该解释为什么要使用它,而不仅仅是提供代码。感谢您的快速响应,但这仍然没有解决我的问题。当我在类似fiddler的代理中查看请求/响应时,上面的第一个ajax块从服务器返回302,然后返回200。当我看到我列出的第二个方法和你在这里写的作为答案的第二个方法的相同类型的行为时,我只看到一个200,数据参数已传递,但表单从未正确提交。我坚信这就是php本身,php代码要求提交所有数据。另一个问题是:var obj={};obj[this.name]=this.value;与var obj=相同的事情;不,不是。通过
console.log(这个)检查它<代码>此
更为复杂
jQuery( "input" ).on("blur", function(){
    var obj = {};
    obj[this.name] = this.value;

    jQuery.ajax({
        type: "POST",
        url: jQuery(this).closest("form").attr("action"),
        data: obj
    });
});