从外部javascript调用onchange函数

时间:2011-10-12 14:27:23

标签: javascript prototypejs

我在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 &lt; option_length; m++) {
    if(update_dropdown[m].value==selected_ColorId) {
        update_dropdown[m].selected=true;
    }
}

有什么方法可以调用在html中调用的onChange事件,就像在这个实例中的changeColor()?我正在使用原型js 感谢

2 个答案:

答案 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还能够以编程方式触发本机事件。