未捕获的TypeError:undefined不是Java Scripts函数

时间:2013-01-24 20:24:43

标签: javascript

function correlativo(sucursal){

    var tipo=document.getElementById('tipo').value;
    var correlativo= document.getElementById('correlativo')


    var ajax=nuevoAjax(); 
    ajax.open("POST", "../ajax/correlativo_ajax.php", true); 
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    ajax.send("tipo="+tipo+"&sucursal="+sucursal); 

    ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4) 
        { 
            var respuesta=ajax.responseXML; 
            correlativo.innerHTML=respuesta.getElementsByTagName("correlativo")[0].childNodes[0].data; 



        } 
    }
}
function guardarOt(){

    //
    var sucursal_ciudad = document.getElementById('sucursal_ciudad').value;

    correlativo(sucursal_ciudad); //This line i get the ERROR
}

我有这个错误:C,我不知道为什么。 未捕获的TypeError:undefined不是函数 当我调用这个函数correlativo();我得到这个错误我不知道为什么;(,请帮助我需要很多解决方案

3 个答案:

答案 0 :(得分:1)

由于browser "feature"创建了与页面上每个元素相对应的全局变量,并且元素的ID作为变量名称,因此很可能发生这种情况。

如果您的网页上有一个ID为correlativo的元素(您执行getElementById('correlativo')后可能会这样做),这会有效地覆盖您function correlativo ...的声明,从而导致它当您尝试从guardarOt执行它时不存在。

TLDR:将correlativo函数的名称更改为其他名称,它应该可以正常工作。

答案 1 :(得分:0)

您有一个名为correlativo的函数和变量。改变其中一个。

此外,您的nuevoAjax未在提供的代码中定义。确保这是一个功能。不是变量。

答案 2 :(得分:0)

你必须缺少nuevoAjax。

function nuevoAjax(){
    var xmlhttp=false;
    try {
        mlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
        }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
};