select的onchange事件


我們用Select的onchange事件時,常會遇到這樣一個問題,那就是連續選相同一項時,觸發onchange事件.select的onchange事件就是這樣子的.你得有Change(改變),才能觸發該事件....

掌握了它的特性后,相應的解決辦法也很簡單.

<select name=sel onchange="bao(this.options[this.options.selectedIndex].value)">
<option value="">請選擇
<option value="1">Item 1
<option value="2">Item 2
<option value="3">Item 3
</select>
<script>
function bao(s)
{
    txt.value+=s;
    //選擇后,讓第一項被選中,這樣,就有Change啦.
    document.all.sel.options[0].selected=true;
}
</script>
<textarea id=txt></textarea> 
==================================================================================================

select 或text的onchange事件需要手動(通過鍵盤輸入)改變select或text的值才能觸發,如果在js中給select或text賦值,則無法觸發onchang事件
例如,在頁面加載完成以后,需要觸發一個onChange事件,在js中用document.getElementByIdx_x("se").value="ttt";直接給select或text賦值是行的,要想實現手動觸發onchange事件,需要在js給select賦值后,加入下面的語句,(假設select的id為sel)
document.getElementByIdx_x("sel").fireEvent('onchange') 來實現,
例子:

<html><body>

<select id="sel" name="test" onchange="demo()">
<option value="1" selected>測試一</option>
  <option value="2">測試二</option>
  <option value="3">測試三</option>
  <option value="4">測試四</option>
</select>
 <input id="tex" type="text" name="text1" id="text1">

<script>

document.getElementByIdx_x("sel").value="3";
document.getElementByIdx_x("sel").fireEvent("onchange");
function demo()
{
var d=document.getElementByIdx_x("sel").value;
document.getElementByIdx_x("tex").value=d;
//alert(d);

}
</script>
</body></html>

上面的代碼產生的效果就相當於鼠標在select元素上進行了選擇,模仿出了select的onchange效果

 

該文轉自:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147d8c8c4668d4e419ce3b4c413037bfa6663f405a8e906b6075a5495de9f03c733d0123b598cd8f4997ac925f75ce786a6459db0144dc0edfc15151cb37912aa8f847b0ebb62592dec5a3d54323cb44737e97808c4d0065dd1ff0034193b19838022f16ad9e34728f5c605a9e3441c61aa5f7331e56dba581091bd42ba07660e4b844b02962c404d068&p=8b2a971491d900fb01bd9b7e0b1c83&newp=8773c64ad48506b908e29478070ac1231610db2151ddd315399385&user=baidu&fm=sc&query=%B8%F8select%B8%B3%D6%B5%2C%B2%BB%B4%A6%B7%A3onchange%CA%C2%BC%FE&qid=&p1=3


免責聲明!

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



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