Javascript 根据功能选择特定的onchange事件
所以我以前问过这个问题,得到了答案,但仍然不起作用,我对代码做了一些修改,基本上我想根据正在运行的函数选择onchange事件。因此,我有以下代码,但它没有做任何事情,下面的onchange将启动checkVal函数,在这个函数中,我想说,如果某个函数在页面上运行,例如updatebrand,然后运行onchange event updatestyle,我知道我做得不对:Javascript 根据功能选择特定的onchange事件,javascript,html,function,triggers,onchange,Javascript,Html,Function,Triggers,Onchange,所以我以前问过这个问题,得到了答案,但仍然不起作用,我对代码做了一些修改,基本上我想根据正在运行的函数选择onchange事件。因此,我有以下代码,但它没有做任何事情,下面的onchange将启动checkVal函数,在这个函数中,我想说,如果某个函数在页面上运行,例如updatebrand,然后运行onchange event updatestyle,我知道我做得不对: <SELECT NAME="choicestyle" onChange="checkVal()"; > <
<SELECT NAME="choicestyle" onChange="checkVal()"; >
<option disabled="disabled" selected="selected"></option>
<SCRIPT>
function checkVal(){
var e = document.getElementById("choicestyle");
e.onchange = function() {
if (e.value == "updatebrand()") {
updatestyle();
} else if (e.value == "updatenewbrand") {
updatenewstyle();
}
}
}
</SCRIPT>
所以我现在用这段代码编辑了最上面的代码,它给出了一个错误,我把$lastRunFunc放在两个函数updateBrand中的每个函数中,并将其设置为0,然后将其放在updatenewBrand中,并将其设置为1,所以当发生一次更改时,它应该触发updatestyle和updatenewstyle函数,但我一直得到对象预期的错误
<SELECT NAME="choicestyle" onChange="checkVal();">
<option disabled="disabled" selected="selected"></option>
<?
echo "checkVal() {\n\n";
if($lastRunFunc==0)
{
echo "updatestyle();\n";
}
if($lastRunFunc==1)
{
echo "updatenewstyle();\n";
}
echo "}\n\n";
?>
退房
注:
在HTML和内联javascript中使用大写字母是非常糟糕的做法。这就是我转换为addEventListener调用的原因
如果我理解正确的话,我认为实现这一点的最好方法是在javascript中有一个全局变量,每个正在运行的函数都可以访问该变量。然后根据全局变量,可以相应地运行checkVal
<script>
var lastRunFunc = "";
function updatebrand(){
lastRunFunc = "updatebrand";
}
function updatebrand2(){
lastRunFunc = "updatebrand2";
}
function checkVal(){
if(lastRunFunc === "updatebrand"){/*do one thing*/}
if(lastRunFunc === "updatebrand2"){/*do another thing*/}
}
</script>
谢谢,我试过你的密码了。我该怎么说呢?因为当页面加载时,它应该自动运行函数updatebrand,这意味着onchange应该触发updatestyle。加载后,如果用户进行了更改,则应触发updatenewbrand。我认为您需要再次尝试清楚地定义您的问题,包括您定义的每个函数的用途。否则,我们必须继续在黑暗中刺杀我没有做正确的事情。因此,基本上,当页面加载时,默认情况下运行UpdateBrand时,函数UpdateStyle驻留在该函数中。现在UpdateBrand有一个带有2个选项的下拉菜单,只要用户通过选择一个选项进行更改,Onchange就会触发函数UpdatenewBrand,并在该函数中驻留UpdatenewStyle。现在,如果选择了UpdatenewBrand,我希望我的另一个Onchange选择UpdatenewStyle。UpdatenewBrand基本上与UpdateBrand相同,只是其中驻留着UpdatenewStyle而不是updatestyle。还值得注意的是,Updatenewstyle和updatestyle函数是下拉列表,其选项随Onchange而更改。