2011-10-24 73 views
3

有人幫我找到的JavaScript code to remove hidden form fields from submissioncode that ignores a certain field,我不想刪除(無論是隱藏與否):JavaScript來刪除所有隱藏要素,但一個

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

:not(input[name=csrfmiddlewaretoken]) 

然而,我不能爲了我的生活想出如何把它們放在一起。我確定這是一個基本的JavaScript問題,但我似乎無法將它們拼湊在一起。

有誰知道如何刪除所有隱藏的表單條目沒有名爲csrfmiddlewaretoken?如果你這樣做,我會非常感激。

非常感謝。

回答

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(); 
2
$(this).find(":hidden").filter("[name!='csrfmiddlewaretoken']").remove(); 
2

您可以通過this作爲背景的說法,這將是可能比從它製作一個jQuery對象更快。 :not()表達式可以在:hidden之後沒有空格,這意味着它會向:hidden選擇器添加第二個條件。

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