0
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、理由がわかりません。Uncaught TypeError: undefined is not a function この関数を呼び出すと、correlativo(); このエラーが発生しました。理由がわかりません;(、助けてください。解決策がたくさん必要です

4

3 に答える 3

1

これは、要素の ID を変数名として、ページ上の各要素に対応するグローバル変数を作成するブラウザの「機能」が原因である可能性が最も高いです。

ページに ID を持つ要素がある場合correlativo( を実行しているため、おそらくそうなりますgetElementById('correlativo'))、 の宣言が効果的に上書きfunction correlativo ...され、 から実行しようとすると存在しなくなりますguardarOt

TLDR:correlativo関数の名前を別の名前に変更すると、正常に動作するはずです。

于 2013-01-24T20:39:58.473 に答える
0

という名前の関数と変数がありますcorrelativo。それらの 1 つを変更します。

またnuevoAjax、提供されたコードで定義されていないものもあります。これが関数であることを確認してください。変数ではありません。

于 2013-01-24T20:37:25.727 に答える
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;
};
于 2013-01-24T20:37:42.917 に答える