javascript - 在 "hash format"中序列化表单

标签 javascript jquery html forms jeditable

jeditable 的文档中对于 submitdata 参数(一个在 ajax 请求中包含一些额外参数的参数),据说:

(Mixed) submitdata: Extra parameters when submitting content. Can be either a hash or function returning a hash.

 $(".editable").editable("http://www.example.com/save.php";,
     {    
         submitdata : {foo: "bar"}; 
 });

 $(".editable").editable("http://www.example.com/save.php";,
     {    
         submitdata : function(value, settings) {
             return {foo: "bar"};    
     } 
 });

所以我需要在 submitData 中包含一些我从表单序列化中恢​​复的参数:

<form id="myForm">
     <input type="hidden" name="param1" value="myValue1"/>
     <input type="hidden" name="param2" value="myValue2"/>
</form>

所以当我准备提交数据时,我会这样做:

submitdata : function(value, settings){
    return $("#myForm").serializeArray();
}

问题在于以这种方式序列化表单会导致格式如下:

[Object { name="param1", value="myValue1"}, Object { name="param2", value="myValue2"}]

但 jeditable 不理解它并在请求中发送

0[name] param1
0[value]    myValue1
1[name] param2
1[value]    myValue2

我试过使用 serialize() 函数,但它也不理解它,因为 Jeditable 需要类似的东西:

{param1: "value1" , param2: "value2"}

是否有任何方法可以将表单序列化为可编辑的所需格式或在序列化后快速更改格式的方法?

谢谢。

最佳答案

我可以解决从序列化数组构建对象的问题,但我不知道这是否是最好的方法。

submitdata : function(value, settings){
    var reformat = function(array){
        var obj = {};
        for(i=0; i<array.length; i++){
            var a = array[i];
            var name = a.name;
            var value = a.value;
            obj[name] = value;
        }
        return obj;
    };
    return reformat($("#myForm").serializeArray());
}

关于javascript - 在 "hash format"中序列化表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4459105/

相关文章:

javascript - 将 HTML NodeList 读入数组

jquery - 页面加载时元素在 css 中的不同动画

html - css 'design patterns' 有什么好的在线资源?

javascript - jQuery setTimeout 在值发布时刷新

php - 如何将javascript数组转换为php数组

jquery - 在 <div> 悬停时显示 <image>

javascript - 为数据表中的第 0 行请求了未知参数 '4'

javascript - 用javascript将一个HTML节点分割为多个节点

javascript - 如果条件存在则链接多个过滤器

javascript - jQuery - 在按钮上单击触发选择选项