在jQuery将所选键和值序列化到数组后删除它

在jQuery将所选键和值序列化到数组后删除它,jquery,html,serialization,Jquery,Html,Serialization,我使用了serialize() $('#序列化')。单击(函数(){ var ser=$('#form1').serialize(); 警报(ser); }) 连载 不要在事件发生后将其删除,而是在序列化之前尝试对其进行筛选,例如: $("#form1").find("input[name!=text1]").serialize(); 本例将查找form1中所有未命名为text1的输入,然后将其序列化。一种方法,可以让您拥有一个具有忽略表单元素名称的数据结构,如下所示: // Object

我使用了
serialize()

$('#序列化')。单击(函数(){
var ser=$('#form1').serialize();
警报(ser);
})

连载

不要在事件发生后将其删除,而是在序列化之前尝试对其进行筛选,例如:

$("#form1").find("input[name!=text1]").serialize();

本例将查找form1中所有未命名为text1的输入,然后将其序列化。

一种方法,可以让您拥有一个具有忽略表单元素名称的数据结构,如下所示:

// Object with the names of the form elements to ignore
var filters = {
    "text1": true,
    "textN": true
};
$("#form1")
    .find(":input")
    .filter(function (i, item) {
        return !filters[item.name];
    })
    .serialize();

您可以通过禁用元素
来从序列化中删除

$('#序列化')。单击(函数(){
removeParam(“#form1[name=text1]”);
var ser=$('#form1').serialize();
控制台日志(ser);
});
函数removeParam(p){
$(p).attr(“禁用”,真实);
}


序列化
如果我有2个过滤器怎么办?这可能吗?我必须.find().find()?如果要筛选2,只需继续链接find()函数。像这样的$(“#form1”).find(“输入[name!=text1]”)。find(“输入[name!=text2]”)。serialize();有道理,我对此投了赞成票,但也许我会等待另一个答案。但是现在我可以用这个技巧来解决我的问题。谢谢@GaryMathis!我从未在find()中尝试过这一点,但您可以尝试将多个选择器传递给单个查找。有点像$(“#form1”).find(“input[name!=text1],input[name!=text2]”。serialize();我不知道这在这种情况下是否有效。