2013-05-13 117 views
0

我使用form.serialize()來獲取參數列表。jquery從url參數中刪除空白或空白值

如果參數爲空或其空間,我想從列表中刪除它。

例如:

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

應該給我

testAction.action?a=1&c=3 

首先,我用正則表達式:

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

但問題是,如果我的網址是

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

正則表達式將返回我

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

之後,我試圖jQuery的解決方案

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

但這只是工作了空值 - >如果我有在將通過價值空間參數。

你能幫我解決一些問題嗎?

感謝

+0

你真的應該在服務器端處理空值,而不是改變表單數據傳遞的方式。 – Archer 2013-05-13 16:33:18

回答

1

嘗試

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

謝謝我接受這個解決方案。我剛剛添加了選擇。 – gospodin 2013-05-13 17:31:58

0

你可以這樣做:

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