2013-11-28 257 views
0

submited形式傳遞標籤有沒有辦法知道哪個選擇標籤提交表單?通過onchange = this.form.submit()

<form method="POST" action="submit.php"> 
    <select id="id1" name="sel1" onchange="this.form.submit()"> 
     <option value="1">First</option> 
     <option value="2" selected="selected">Second</option> 
    </select> 

    <select id="id2" name="sel2" onchange="this.form.submit()"> 
     <option value="1">First</option> 
     <option value="2" selected="selected">Second</option> 
    </select> 
</form> 

非jQuery的解決方案是最好的,但不是強制性的?

附:問題是selected="select"屬性是動態生成的(我不知道哪個選項會被選爲默認值 - 所以我無法比較默認值和提交的值)

+0

select - >(通過js函數)隱藏的文本框 - > php(使用GET或POST) –

回答

1

首先想到的是帶隱藏字段的值你設置。像這樣的事情應該做。

<form method="POST" action="submit.php"> 
    <input type="hidden" name="submitselect" value="" id="submitselect"> 
    <select id="id1" name="sel1" onchange="document.getElementById('submitselect').value='sel1';this.form.submit()"> 
     <option value="1">First</option> 
     <option value="2" selected="selected">Second</option> 
    </select> 

    <select id="id2" name="sel2" onchange="document.getElementById('submitselect').value='sel2';this.form.submit()"> 
     <option value="1">First</option> 
     <option value="2" selected="selected">Second</option> 
    </select> 
</form> 

或者,您可以選擇一個默認選項,例如,

<option value="" selected>-</option> 

那永遠不會被選中。那樣的話,這個選項在未導致提交的select中將保持未被設置。

+0

so,表單將在使用此代碼進行任何選擇更改時提交? (關於默認選擇的選項 - 我沒有權限設置默認選項) – inemanja

+0

是的,表單將在任何選擇更改時提交,就像您當前的代碼一樣。你是什​​麼意思,你沒有權限設置默認選項?你已經使用'selected =「選擇了一個」'「。 – kba

+0

這是一個例子......我不知道哪個將被選中。我也不知道每個「」元素將被生成。 ..最簡單的方法是通過