select 或text的onchange事件需要手動(通過鍵盤輸入)改變select或text的值才能觸發(fā),如果在js中給select或text賦值,則無法觸發(fā)onchang事件,
例如,在頁面加載完成以后,需要觸發(fā)一個onChange事件,在js中用document.getElementById("se").value="ttt";直接給select或text賦值是不行的,要想實(shí)現(xiàn)手動觸發(fā)onchange事件,需要在js給select賦值后,加入下面的語句,(假設(shè)select的id為sel)
document.getElementById("sel").fireEvent('onchange') 來實(shí)現(xiàn),
例子:
<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.getElementById("sel").value="3";
document.getElementById("sel").fireEvent("onchange");
function demo()
{
var d=document.getElementById("sel").value;
document.getElementById("tex").value=d;
//alert(d);
}
</script>
</body></html>
上面的代碼產(chǎn)生的效果就相當(dāng)于鼠標(biāo)在select元素上進(jìn)行了選擇,模仿出了select的onchange效果