如何disabled前端動態產生的<select>並用Request.Form抓到資料

在早期ASP.NET 1.0/1.1的時代,當時還沒有Ajax Extenssion的UpdatePaenl可以用時,當DropDownList的Enabled設定為True,或是該DropDownList不是Server Site Control,是一個前端以 DIV的innerHTML 屬性動態寫入<select>標籤,但Server 端只能以Request.Form[“DropDownLoad1”]抓取選擇的資料時

在早期ASP.NET 1.0/1.1的時代,當時還沒有Ajax Extenssion的UpdatePaenl可以用時,當DropDownList的Enabled設定為True,或是該DropDownList不是Server Site Control,是一個前端以 DIV的innerHTML 屬性動態寫入<select>標籤,但Server 端只能以Request.Form[“DropDownLoad1”]抓取選擇的資料時,如果 disabled=”disabled”的時候,Request.Form[“DropDownList1”] 是抓不到資料的。但是某些強況我又不讓使用者可以下拉那個選單,怎麼辦呢?

可以用一個<SPAN>包起來,鎖住onmousemove與onmouseout 事件,完整程式碼如下:

	
		   1:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
		   2:  <html xmlns="http://www.w3.org/1999/xhtml">
		   3:   
		   4:  <head>
		   5:  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
		   6:  <title>未命名 1</title>
		   7:  <script language="javascript">
		   8:  function SetSpan2Disabled()
		   9:  {
		  10:      AAA.removeAttribute("onmousemove");
		  11:      AAA.removeAttribute("onmouseout");
		  12:  }
		  13:  function SetSpan2Enabled()
		  14:  {
		  15:      AAA.setAttribute("onmousemove", "try{this.setCapture();}catch(e){}");
		  16:      AAA.setAttribute("onmouseout", "try{this.releaseCapture();}catch(e){}");
		  17:  }
		  18:  </script>
		  19:  </head>
		  20:   
		  21:  <body>
		  22:   
		  23:  <span onmousemove='try{this.setCapture();}catch(e){}' onmouseout='try{this.releaseCapture();}catch(e){}' id="AAA">
		  24:  <select name="selText" style="width: 257px">
		  25:      <option>(none)</option>
		  26:      <option>A</option>
		  27:      <option>B</option>
		  28:      <option>C</option>
		  29:  </select>
		  30:  <br />
		  31:  </span>
		  32:   
		  33:      <input name="Button1" type="button" value="2Disabled" onclick="SetSpan2Disabled()"/><p>
		  34:   
		  35:      <input name="Button2" type="button" value="2Enabled" onclick="SetSpan2Enabled()"/></p>
		  36:  &nbsp;<p>&nbsp;</p>
		  37:   
		  38:  </body>
		  39:   
		  40:  </html>

 

 

筆者在這個範例中加了兩個Button以測試關閉'不關閉的狀況,有興趣的可以自行試試看。


 

簽名:

學習是一趟奇妙的旅程

這當中,有辛苦、有心酸、也有成果。有時也會有瓶頸。要能夠繼續勇往直前就必須保有一顆最熱誠的心。

軟體開發之路(FB 社團)https://www.facebook.com/groups/361804473860062/

Gelis 程式設計訓練營(粉絲團)https://www.facebook.com/gelis.dev.learning/


 

如果文章對您有用,幫我點一下讚,或是點一下『我要推薦,這會讓我更有動力的為各位讀者撰寫下一篇文章。

非常謝謝各位的支持與愛護,小弟在此位各位說聲謝謝!!! ^_^