2011-10-24 4 views
3

누군가가 나에게 (그것을 숨기거나하지 여부) 나는 제거 원하지 않는 자바 스크립트 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 이름이 지정되지 않았습니까? 그렇게한다면 정말 고맙겠습니다.

고마워요.

답변

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

당신은 빨리로부터의 jQuery 객체를 만드는 것보다 잠재적으로있을 것 컨텍스트 인수로 this을 전달할 수 있습니다. :not() 표현식은 공백없이 :hidden 다음에 올 수 있습니다. 즉, :hidden 선택자에 두 번째 조건을 추가합니다.

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