2013-05-15 37 views
1

我想序列化表單元素來檢查髒數據。當我試圖包含我想在序列化期間忽略的控件時,它停止工作。JQuery序列化()方法不會忽略某些窗體控件

我有一個由文本框,單選按鈕和複選框組成的表單。我必須忽略 - 搜索文本框(如果有的話)和單選按鈕,但包括休息。這是我到現在爲止的嘗試:

//this serializes all the controls, ignores my filter 
//var output = $('input[name!="txtSearch"], input[type=text], input[type!=radio]').serialize(); 

//this serializes all textboxes including search textbox and checkbox 
//var output = $('input[type=text], input[type!=radio]').serialize(); 

//this serializes all textboxes and checkboxes including search textbox 
var output = $('input[type=text], input[type=checkbox]').serialize(); 
$("#result").html(output); 

我在這裏錯過了什麼嗎?這是我正在處理的jsFiddle

回答

3

,在選擇器中的工作方式類似於「或」。這意味着輸入可以滿足任何的條件。

input[name!="txtSearch"], input[type=text] 

...還是會接受txtSearch,因爲它滿足了選擇的一部分。同樣,任何類型的輸入(包括radio)都不會被稱爲txtSearch滿足第一個。

但是,您可以同時使用多個否定屬性選擇器。我認爲你正在尋找

input[type!=radio][name!="txtSearch"] 

http://jsfiddle.net/2xnFV/1/

+0

點吧!非常感謝!另外,感謝今天教給我'',在選擇器中使用「或」。我相信人們會喜歡這個答案。 –