Javascript 2个函数分别在同一时间更改事件
所以我要寻找的是一种方法,在使用我的第一个选项进行更改时触发2个函数事件,我在其他站点上查找了一些示例,但它们都不起作用。但我想要的是当选择this.value时,函数通过选择打开两个单独的选项 因此,如果category是Javascript 2个函数分别在同一时间更改事件,javascript,php,html,ajax,onchange,Javascript,Php,Html,Ajax,Onchange,所以我要寻找的是一种方法,在使用我的第一个选项进行更改时触发2个函数事件,我在其他站点上查找了一些示例,但它们都不起作用。但我想要的是当选择this.value时,函数通过选择打开两个单独的选项 因此,如果category是Dogs,它会同时执行showSub(Dogs)和showSize(Dogs),并发送到两个不同的php页面调用(如果可能的话) //index.php <select name="category" onChange="showSub(this.value);show
Dogs
,它会同时执行showSub(Dogs)
和showSize(Dogs)
,并发送到两个不同的php页面调用(如果可能的话)
//index.php
<select name="category" onChange="showSub(this.value);showSize(this.value)" style="width:200px;">
<option value="">Select Category</option>
Send to php to get actual options.
</select>
<div id="txtSub"></div>
<div id="txtSize"></div>
//index.php的其余部分
<div id="txtSub"></div>
<div id="txtSize"></div>
使用var
声明所有变量。您的showSub()
和showSize()
函数都使用未使用var
声明的变量xmlhttp
,这使其成为全局变量-因此,当您调用showSize()
时,它将覆盖showSub()
中的xmlhttp
对象(这就是为什么你会得到评论中提到的效果,其中“对于当前代码,showsize只显示”)
因此,将这一行添加到每个函数的开头:
var xmlhttp;
更好的是,将if/else移到一个单独的函数中,该函数返回一个xmlhttp对象,而不是在两个函数中重复该代码:
function getXMLHttp() {
return window.XMLHttpRequest ? new XMLHttpRequest() // newer browsers
: new ActiveXObject("Microsoft.XMLHTTP"); // old IE
}
// and then within your other functions:
var xmlhttp = getXMLHttp();
那么,什么具体不起作用呢?你没有理由不能进行多个异步调用。你真的必须支持IE6、IE5吗?我为你感到难过。@mikebrant实际上它做了一些奇怪的事情,我的语法肯定是错误的
新ActiveXObject(“Microsoft.XMLHTTP”)
woah根据当前代码,showsize只显示。如果我更改是否正确onChange=“showSub(this.value);showsize(this.value)”
?别担心这会起作用。这个网站上有这么多人在玩巨魔。你就是那个人!