2013-05-13 2 views
0

form.serialize()을 사용하여 매개 변수 목록을 얻습니다.jquery가 URL 매개 변수에서 공백 또는 공백 값을 제거합니다.

매개 변수가 비어 있거나 공백 인 경우 목록에서 제거하고 싶습니다.

예를 들면 : 나는 정규식 사용 된

testAction.action?a=1&c=3 

먼저

testAction.action?a=1&b=&c=3 

나에게 제공해야합니다 :

params = params.replace(/[^&]+=\.?(?:&|$)/g, ''); 

그러나 문제가되는 내 URL이

testAction.action?a=1&b=2&c= 
인 경우

정규식 내가 jQuery를 솔루션을

$('.myForm').find('input, select').not("[value='']").serialize(); 

을 시도 그 후 나에게

testAction.action?a=1&b=2& (i have & at the end!) 

을 반환하지만 이것은 단지 빈 값을 위해 노력하고 있습니다 -> 내가 전달합니다 값 공간 매개 변수가있는 경우.

다른 해결책을 알려주십시오.

감사

+0

당신은 정말 서버 측에서 빈 값을 처리하는 대신 폼 데이터가 전달되는 방법을 변경해야보십시오. – Archer

답변

1

$(".myForm :input").filter(function() {return $.trim(this.value);}).serialize(); 
+0

덕분에 나는이 해결책을 받아 들였다. 방금 선택한 것을 추가했습니다. – gospodin

0

당신은이 작업을 수행 할 수 있습니다

params = params.replace(/&?[^&?]+=(?=(?:&|$))/g, '');