2012-08-15 88 views
1

我想在提交表單時發送選項框的值和鍵。我覺得這應該很簡單,但我不確定如何去做。下面是我的形式片段來證明什麼,我引用:發送選項框的值和鍵作爲參數?

<form name='form' onSubmit="return checkForm();" action="../servlet/AccountRequest"> 

<select name="type1"> 
    <option value="1">Option A</option> 
    <option value="2">Option B</option> 
</select> 

<br/><input type="button" id="Submit" onclick="checkForm(this.form)" value="Request" /> 
<input type="reset" value="Cancel"/> 
</form> 

在正常情況下,如果我在下拉框中選擇「選項A」,我想送價值,或「1」。但是,我希望實際發送選擇的值AND鍵,在這種情況下是「1」和「選項A」。

在我的情況下,我調用驗證表單輸入(還有其他字段,如名字,姓氏,電子郵件地址和密碼)的checkForm()JavaScript函數,然後將參數轉發給Java類AccountRequest)。我確信有一種方法可以在點擊「請求」按鈕時將密鑰存儲爲變量,我只是不知道如何。

任何幫助將不勝感激!

回答

2

它可能不是您所期望的方式,但你可以發送鍵/值對你的價值,當解析它你收到它的服務器端。

<select name="type1"> 
    <option value="1,Option A">Option A</option> 
    <option value="2,Option B">Option B</option> 
</select> 
1

使用複合值,然後解析它在服務器上:

<option value="1_A">Option A</option> 
2

在HTML中,這是不可能的:貢獻的一個select元件中的數據是定義爲選定optionvalue屬性,當存在時(否則選定option元素的含量)。

在JavaScript中,一旦您決定應該如何傳遞內容(在您的描述中爲「key」),這將非常容易。最簡單的方法是,可以將內容附加到value屬性中,字符串之間有一些分隔符;那麼你將不得不解析服務器端,但這也很簡單。

但是,它是option元素的主意的一部分,即內容是用戶界面中的可見字符串,用戶可以理解,屬性是機器可讀的易於處理的數據。在良好的設計中,他們保持獨立,不合並;服務器應該只需要來自value屬性的數據;否則有一個應該修復的設計缺陷。

3

您可以與您的數據的JSON表示玩:

<select name="type1"> 
<option value="{'1':'Option A'}">Option A</option> 
<option value="{'2':'Option B'}">Option B</option> 
</select> 
1

您可以添加以下代碼,讓您的選擇<option>標籤的文本在checkform功能:

var select = document.getElementsByName("type1")[0]; // get select element - simpler if it has an ID because you can use the getElementById method 
var options = select.getElementsByTagName("option"); // get all option tags within the select 

for (i = 0; i < options.length; i++) { // iterate through all option tags 
    if (options[i].value == select.value){ // if this option is selected 
     var key = options[i].innerHTML; // store key of selected option here 
    } 
} 

DEMO, which tells you the key that's selected

0

您可以使用隱藏的輸入類型發送值

1 - 選擇默認值:

<input type="hidden" id="theValue" name="type1Value" value="Option A"/> 

2。-add的onChange功能,您的選擇,從而改變一個隱藏值

<select id="type1" name="type1" onChange="updateValue()"> 
    <option value="1">Option A</option> 
    <option value="2">Option B</option> 
</select> 

假設你正在使用jQuery:

function updateValue(){ 
    var value= $('#type1').find(":selected").text(); 
    $('#theValue').val(value); 
} 

所以選擇的值將在type1Value變量,易發!