在onchange = not working中调用两个函数

时间:2012-02-10 11:21:33

标签: function onchange

我一直在搜索如何在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)。

3 个答案:

答案 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();
}