我一直在搜索如何在onchange中放置多个函数,我发现了类似的例子:onchange = "function1(); function2();"
。
我的问题是我已经按照示例的说法,但只有function1正常工作,function2无法正常工作。如果我将其改为onchange = "function2(); function1();"
,则只有function2工作,function1是不工作,一样。
任何想法的家伙? 感谢。
这些函数,我使用了Ajax:
function1(test)
{
var kode = test.value;
if (!kode) return;
xmlhttp.open('get', '../template/get_name-opr.php?kode='+kode, true);
xmlhttp.onreadystatechange = function() {
if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
{
//alert(kode);
document.getElementById("code").innerHTML = xmlhttp.responseText;
}
return false;
}
xmlhttp.send(null);
}
function2(test)
{
var kode = test.value;
if (!kode) return;
xmlhttp**1**.open('get', '../template/get_name2-opr.php?kode='+kode, true);
xmlhttp**1**.onreadystatechange = function() {
if ((xmlhttp**1**.readyState == 4) && (xmlhttp**1**.status == 200))
{
//alert(kode);
document.getElementById("code2").innerHTML = xmlhttp**1**.responseText;
}
return false;
}
xmlhttp**1**.send(null);
}
为了解决我的问题,我创建了两个不同的xmlhttp。 (xmlhttp和xmlhttp1)。
答案 0 :(得分:1)
在function1()的末尾调用function2()。
onchange = "function1()"
function1(){
...
function1 body;
...
function2()
}
答案 1 :(得分:1)
通过我提供的链接,您管理xmlhttprequest
对象的方式似乎有问题,在您的情况下正确管理其实例,因为您使用相同的xmlhttprequest
两个同时发送AJAX请求,只有其中一个请求服务。要么等待其中一个获得服务,要么创建xmlhttprequest
的两个实例。
语句xmlhttp.readystate = function() {...}
显然取代了该readystate
对象的xmlhttprequest
属性,因此在您的第二个函数上,正在被替换(因为您正在使用xmlhttprequest
他们都 )。这就是你看到有趣行为的原因。
答案 2 :(得分:0)
将两个函数调用包装在一起并调用该函数!
function myFirstFunction() {
//body
}
function mySecondFunction() {
//body
}
//Call this guy.
function myWrappedFunction() {
myFirstFunction();
mySecondFunction();
}