当从另一个函数更改下拉列表值时调用Javascript onchange函数
我有一个下拉框当从另一个函数更改下拉列表值时调用Javascript onchange函数,javascript,Javascript,我有一个下拉框 <select id="drp" onchange="setValue(this.value)"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> </select> function setValue
<select id="drp" onchange="setValue(this.value)">
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
function setValue(val)
{
var temp=val;
}
function another_function()
{
document.getElementById("drp").value="two"
}
一个
两个
三
函数设置值(val)
{
var-temp=val;
}
函数另一个_函数()
{
document.getElementById(“drp”).value=“两个”
}
当我从另一个函数将drp
设置为“2”时,我想调用setValue()
。根据代码中关于如何从JavaScript库设置下拉值的说明,我编写了另一个函数。是否可以在setValue
函数中捕获onchange
事件
当从另一个函数的下拉框中设置两个值时,我想调用setValue函数。我在JavaScript库中的代码集下拉值中编写了另一个expanation函数。那么,是否有可能在设置值函数中捕捉到更改事件?据我所知,您希望能够在不触发设置值的情况下设置值
我会这样做:
function setValue(val)
{
var temp=val;
}
function another_function()
{
var drp = document.getElementById("drp");
var oldOnChange = drp.onchange;
drp.onchange = function() {};
drp.value = "two";
drp.onchange = oldOnChange;
}
这将删除事件处理程序,设置值,然后恢复事件处理程序。只需更改另一个函数,如下所示
function another_function()
{
document.getElementById("drp").value="two"
setValue(document.getElementById("drp").value);
}
正如您所发现的,change
事件并不总是由某些元素中的所有更改触发。特别是,触发事件的通常只是鼠标和键盘的交互。无论何时更改值,都必须手动“触发”:
function another_function()
{
var drp = document.getElementById("drp");
drp.value="two";
drp.onchange(); // Make sure the change event is triggered
}
正如我所说,我的下拉值是从JavaScript库中设置的,并且在库中编写了泛型代码,因此我无法编辑它。@Hkachhia我在理解您的意思时遇到了一点困难。好的,我已经明白了。当下拉值将从另一个函数更改时,我想调用onchange函数。或者我想在更改另一个函数的下拉列表值时捕获事件,您的意思是像drp.onchange()
,它会触发setValue
函数吗?当下拉列表值更改时,它会自动调用我得到了您的观点,但在项目中我使用了Javascript库,这个库可以在HTML控件中设置值。这是一个通用代码。@Hkachhia您使用的是什么库?我们已经为我们的项目创建了自己的javascript库