select onchange 事件的觸發(fā)
來源:程序員人生 發(fā)布時(shí)間:2014-10-03 08:00:01 閱讀次數(shù):4754次
做小組內(nèi)使用的一個(gè)簡單工具,其中要實(shí)現(xiàn)的一個(gè)小功能是當(dāng)某個(gè)下拉菜單的選擇值改變時(shí)觸發(fā)另一表單元素的屬性變化。自然的想到使用select表單元素的onchange事件。
下拉菜單部分的代碼如下:
<select name="type" id="type" disabled="disabled" onchange="setDelType(this)">
<option value="1">1-分區(qū)表</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");
}
...
結(jié)果發(fā)現(xiàn)下拉菜單的值發(fā)生變化時(shí)setDelType(this)并未被調(diào)用。原來,通過JS來改變select的值時(shí)不會(huì)觸發(fā)其onchange事件的。只有通過鼠標(biāo)或鍵盤操作,而且選擇的值不同于原始值時(shí)才會(huì)觸發(fā)該事件。若需通過JS改變select的值并觸發(fā)onchange事件需要在代碼中顯式的觸發(fā)一下。
修改后的代碼如下:
...
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();
}
...
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)