select onchange 事件的觸發,selectonchange

來源:互聯網
上載者:User

select onchange 事件的觸發,selectonchange
做小組內使用的一個簡單工具,其中要實現的一個小功能是當某個下拉式功能表的選擇值改變時觸發另一表單元素的屬性變化。自然的想到使用select表單元素的onchange事件。

下拉式功能表部分的代碼如下:

<select name="type" id="type" disabled="disabled" onchange="setDelType(this)">     <option value="1">1-分區表</option>     <option value="2" selected="selected">2-普通表</option></select>
下拉式功能表的值通過JS更改:
...tableType = getTableType(DNS, port, DBName, tableName);if(tableType == 1){    $("#type").val("1");}else if (tableType == 2){    $("#type").val("2");}...
結果發現下拉式功能表的值發生變化時setDelType(this)並未被調用。原來,通過JS來改變select的值時不會觸發其onchange事件的。只有通過滑鼠或鍵盤操作,而且選擇的值不同於原始值時才會觸發該事件。若需通過JS改變select的值並觸發onchange事件需要在代碼中顯式的觸發一下。

修改後的代碼如下:
...tableType = getTableType(DNS, port, DBName, tableName);if(tableType == 1){    $("#type").val("1");    $("#type").change();}else if (tableType == 2){    $("#type").val("2");    $("#type").change();}...

或者:

...tableType = getTableType(DNS, port, DBName, tableName);if(tableType == 1){    $("#type").val("1").change();}else if (tableType == 2){    $("#type").val("2").change();}...



select 標籤 onchange事件

在後台擷取時使用select標籤的名稱即可。
比如你的select的name叫:type
則在後台擷取時為:
$_POST["type"];
 
<select>控制項中,選中第一個值是不會觸發onchange事件的,怎使選中第一值可以觸發事件?

onchange從這個名稱就可以看出,只有在select的選項有改變(change)的時候才會觸發這個事件的。一般情況下select的第一個選項是預設選項,當你選中第一個項時,由於值沒有改變,所以是不會觸發onchange事件的。解決這個問題並沒有什麼完美的辦法,一般你可以增加一個空值的項作為第一選項,比如<option>請選擇</option>,這樣原來的第一項就變成了第二項,點擊該項值就有所改變了,就會觸發onchange事件了;或者把除第一項外的其他項設為預設值,這樣點擊第一項也會觸發事件的。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.