html select change事件觸發


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

下拉菜單部分的代碼如下:

[javascript]  view plain  copy
 
  1. <select name="type" id="type" disabled="disabled" onchange="setDelType(this)">  
  2.      <option value="1">1-分區表</option>  
  3.      <option value="2" selected="selected">2-普通表</option>  
  4. </select>  

下拉菜單的值通過JS更改:

[javascript]  view plain  copy
 
  1. ...  
  2. tableType = getTableType(DNS, port, DBName, tableName);  
  3. if(tableType == 1){  
  4.     $("#type").val("1");  
  5. }else if (tableType == 2){  
  6.     $("#type").val("2");  
  7. }  
  8. ...  

結果發現下拉菜單的值發生變化時setDelType(this)並未被調用。原來,通過JS來改變select的值時不會觸發其onchange事件的。只有通過鼠標或鍵盤操作,而且選擇的值不同於原始值時才會觸發該事件。若需通過JS改變select的值並觸發onchange事件需要在代碼中顯式的觸發一下。

修改后的代碼如下:

[javascript]  view plain  copy
 
  1. ...  
  2. tableType = getTableType(DNS, port, DBName, tableName);  
  3. if(tableType == 1){  
  4.     $("#type").val("1");  
  5.     $("#type").change();  
  6. }else if (tableType == 2){  
  7.     $("#type").val("2");  
  8.     $("#type").change();  
  9. }  
  10. ...  

或者:

 

[javascript]  view plain  copy
 
    1. ...  
    2. tableType = getTableType(DNS, port, DBName, tableName);  
    3. if(tableType == 1){  
    4.     $("#type").val("1").change();  
    5. }else if (tableType == 2){  
    6.     $("#type").val("2").change();  
    7. }  
    8. ...  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM