jQuery 事件——關於Select選中


場景:

  eg:在管理一篇博文時,因博文的管理有一列叫:狀態的列,該列有諸多狀態,如:正常,待審核,刪除等...  此時,若使用Select下拉列表進行狀態選擇,並在選中具體項值后,通過Ajax異步提交,在效果及體驗上就能得到更大化的體驗。 


下拉列表例子如下:

 

1 <select id="status">
2     <option value="0" >待審核</option>
3     <option value="1" >未通過審核</option>
4     <option value="2" >制作中</option>
5     <option value="3">制作完成</option>
6     <option value="4" >發布</option>
7     <option value="5">暫停</option>
8     <option value="6">刪除</option>
9 </select>    

 

錯誤示范:

 

1 $("select#status").click(function(){
2     console.log($(this).val());
3 });

 

若通過click事件執行,則在點擊下拉列表的首次便會觸發一次Ajax請求,這樣並不符合邏輯,故不能使用click事件作為下拉列表選中具體值的做法。

 

正確示范:

 

1 $("select#status").change(function(){
2     console.log($(this).val());
3 });

 

W3SCHOOL  對change事件的詮釋如下:

 

定義和用法

 

當元素的值發生改變時,會發生 change 事件。

 

該事件僅適用於文本域(text field),以及 textarea 和 select 元素。

 

change() 函數觸發 change 事件,或規定當發生 change 事件時運行的函數。

 

注釋:當用於 select 元素時,change 事件會在選擇某個選項時發生。當用於 text field 或 text area 時,該事件會在元素失去焦點時發生。

 


 

通過以上,能清楚明白,當對於Select下拉列表時,應該使用Change事件。

補充:

因為頁面翻頁也是使用Ajax技術進行異步處理,當翻頁后,原寫法將失效,此時應該使用如下代碼進行執行:

1 $(document).on("change",'select#status',function(){
2     console.log($(this).val());
3 });

 

 

 


免責聲明!

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



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