2010-10-28 172 views
0

我在頁面上有多個選擇框,所有這些選擇框共享name屬性的相同開始部分。我需要做的是通過這個起始名稱SELECT___的頁面上的每個選擇框,並獲取該選擇框的名稱,無論選擇的選項值是什麼,並將它格式化爲這樣,然後我可以將它插入到Ajax如下所示。在多個選擇框上對選定的選擇框選項進行序列化表格

注意:產品代碼是從以下變量

var global_Current_ProductCode = '100E'; 

這是Ajax調用檢索。注意我對數據字段進行了硬編碼並且它可以工作,但我需要用相應的選擇名稱來獲取實際選定的選項值。

$.ajax({ 
url: $("form[name='MainForm']").attr('action'), 
data: "SELECT___100E___7=25&SELECT___100E___9=42&btnupdateprice.x=0&btnupdateprice.y=0&ProductCode=100E", 
type: 'POST', 
cache: false, 
success: function(response) { 
result2= $(response).find(".pricecolor .price"); 
alert(result2.text()); 
} 
}); 

這裏是選擇框。請注意,頁面上可能有一個,兩個或多個選擇框。謝謝你的幫助。希望我有道理。

<select onChange="change__option(this.name,this.options[this.selectedIndex].value,this.options[this.selectedIndex].text)" name="SELECT___100E___7"> 
<option value="0">Select Cart Color</option> 
<option value="21">Chrome</option> 
<option value="25">Beige/Almond [Add $1.00]</option> 
</select> 

<select onChange="change__option(this.name,this.options[this.selectedIndex].value,this.options[this.selectedIndex].text)" name="SELECT___100E___9"> 
<option value="0">Select Cart Color</option> 
<option value="27">Red</option> 
<option value="42">Beige/Almond [Add $2.00]</option> 
</select> 

所以總結起來,我需要的格式要像SELECT___100E___7=25&SELECT___100E___9=42&btnupdateprice.x=0&btnupdateprice.y=0&ProductCode=100E,這樣我可以把它放在Ajax調用的數據字段。假設第一個選擇框選擇了米色/杏仁選項(25),第二個選擇框也選擇了米色/杏仁選項(42)

回答

1

您可以使用jQuery serialize。它只需要周圍的<form>上的id屬性。包括與請求的其他信息,如產品ID或價格,建立相應的hidden領域,並呼籲

$.ajax({ 

//.. 

data: $("#form-id").serialize(), 

//.. 

}); 
+0

這有點兒工作,但不包括與btnupdateprice.x = 0&btnupdateprice.y = 0,所以我說這它和它的工作完美。數據:$(「#form-id」)。serialize()+'&btnupdateprice.x = 0&btnupdateprice.y = 0', – user357034 2010-10-28 14:22:26

+0

實際使用的選擇器是這個$(「form [name ='MainForm']」)。serialize )+'&btnupdateprice.x = 0&btnupdateprice.y = 0', – user357034 2010-10-28 14:33:28

+0

@ user357034:serialize()函數僅從輸入元素獲取值。要包含其他信息,您需要添加一對隱藏字段或像您一樣簡單地連接附加數據。 – Saul 2010-10-28 14:34:20