2010-03-21 43 views
3

我使用的是經典的ASP,我有一個下拉列表,用戶選擇,然後按提交。按下提交後,下拉列表將回到默認值,而不是他們選擇的內容。無論如何要保持後貼之間的下降狀態,而不是它回到默認狀態?如果需要,可以發佈代碼示例。 謝謝!下拉後不保留選定的值後回

回答

10

您必須根據用戶已發佈的值來「選擇」服務器端。

<select id="cars"> 
    <option value="volvo" 
     <% 
     if request.form("cars") = "volvo" then 
      response.write("selected") 
     end if %> 
     >Volvo</option> 
    <option value="Saab" 
     <% 
     if request.form("cars") = "Saab" then 
      response.write("selected") 
     end if %> 
     >Saab</option> 
    <option value="Mercedes" 
     <% 
     if request.form("cars") = "Mercedes" then 
      response.write("selected") 
     end if %> 
     >Mercedes</option> 
    <option value="Audi" <% 
     if request.form("cars") = "Audi" then 
      response.write("selected") 
     end if %> 
     >Audi</option> 
</select> 

當然,你可能想自己開發自己的函數來避免所有的樣板。

<% 
sub option(value, data, select_id) 
    Response.Write("<option value=""" & value & """) 
    if request.form(select_id) = value then 
     Response.Write("selected") 
    end if 
    Response.Write(">" & data & "</option>") 
end sub 
%> 
' (...) 
<select id="cars"> 
    <% option("volvo", "Volvo", "cars") %> 
    <% option("Saab", "Saab", "cars") %> 
    <% option("Mercedes", "Mercedes", "cars") %> 
    <% option("Audi", "Audi", "cars") %> 
</select> 

如果傳遞功能的空白select_id,也不會在意試圖選擇select回發的選項。

+0

我使用了這個功能,這正是我需要完美的工作!謝謝!! – Bmw 2010-03-22 16:41:26

+1

@Bmw:記住要適應您的需求,因爲可能有些事情我沒有考慮到(例如,如果您使用GET而不是POST)以保持它的簡短。很高興幫助。 – voyager 2010-03-22 16:44:41

0

您可以使用JavaScript和純HTML來實現這一目標: HTML: 創建一個隱藏字段

的Javascript: 在提交時保持選擇的值隱變量

在頁面加載 環通的下拉值並使用隱藏變量設置選定值

還有一個變體可用於http://www.daniweb.com/forums/thread105485.html

+0

我可以知道爲什麼這是downvoted,沒有任何理由解釋? – balalakshmi 2010-03-22 15:32:47

+1

我沒有降低它的效果,但可能是因爲它需要JavaScript來不必要地使事情變得複雜,當OP問題只需要一個服務器端解決方案來考慮'select'的發佈值時。 – voyager 2010-03-22 16:48:23

+0

@voyager謝謝澄清。這將幫助我下次 – balalakshmi 2010-03-23 07:07:14