我在html文件中有一个我无法触及的选择下拉列表
<select id="color" onChange="javascript:changeColor(this)">
<option value="black">Black</option>
<option value="red">Red</option>
<option value="blue">Blue</option>
<option value="gold">Gold</option>
</select>
我试图使用原型js
来操纵它var update_dropdown=$$('select#color option');
var option_length= update_dropdown.length;
for (var m = 0; m < option_length; m++) {
if(update_dropdown[m].value==selected_ColorId) {
update_dropdown[m].selected=true;
}
}
有什么方法可以调用在html中调用的onChange事件,就像在这个实例中的changeColor()?我正在使用原型js 感谢
答案 0 :(得分:1)
您不需要自行调用更改事件。由于更改事件只是连接到您的javascript函数,因此您可以直接使用适当的参数调用changeColor
函数来模拟实际事件发生的时间。
var selectObj = document.getElementById('color');
changeColor.call(selectObj, selectObj);
这将与changeColor(this)
完全相同。
仅供参考,在changeColor.call(a,b)的两个参数中,a
参数将changeColor函数中的this
指针设置为您的选择对象和b
argument将changeColor函数中的第一个函数参数设置为您的选择对象,以匹配您在HTML中调用它的方式。
答案 1 :(得分:0)
您可以使用类似event.simulate.js的内容来触发<select>
上的更改事件。 jQuery还能够以编程方式触发本机事件。