JavaScript删除所有隐藏的元素,但一个

时间:2011-10-24 04:44:32

标签: javascript jquery

有人帮我找到了我不想删除的JavaScript code to remove hidden form fields from submissioncode that ignores a certain field(无论是否隐藏):

$("form").submit(function() {
$(this).find(":hidden").remove(); // hide hidden elements before submitting
});

:not(input[name=csrfmiddlewaretoken])

然而,我不能为我的生活弄清楚如何将这些放在一起。我确定这是一个基本的JavaScript问题,但我似乎无法将它们拼凑在一起。

是否有人知道如何删除所有隐藏的表单条目未命名 csrfmiddlewaretoken?如果你这样做,我真的很感激。

非常感谢。

3 个答案:

答案 0 :(得分:10)

$(this).find(":hidden").not('input[name=csrfmiddlewaretoken]').remove();

或者

$(this).find(":hidden").filter(':not(input[name=csrfmiddlewaretoken])').remove();

或者

$(this).find("input[name!=csrfmiddlewaretoken]:hidden").remove();

答案 1 :(得分:2)

$(this).find(":hidden").filter("[name!='csrfmiddlewaretoken']").remove();

答案 2 :(得分:2)

您可以将this作为上下文参数传递,这可能比从中创建jQuery对象更快。 :not()表达式可以跟:hidden没有空格,这意味着它会向:hidden选择器添加第二个条件。

$(":hidden:not(input[name=csrfmiddlewaretoken])", this).remove();