1

私は少し迷っています...私はAJAX呼び出しがたくさんあるサイトを持っています。JavaScriptのテキストフィールドの書式設定を試してみましたが、処理が難しすぎたため、JavaScriptのテキストフィールドの書式設定を行わずに通常の形式に戻すことにしました。しかし、現在、私のAjax呼び出しはどれも機能しておらず、理由はわかりません...私が得たのはこのエラーだけです:

ReferenceError: name-of-the-call is not defined

呼び出しは「scripts.js」ファイルにあり、これは最初からヘッダーに含まれています。

これは、uploadifyスクリプトと、入力フィールド間の矢印キーナビゲーションを備えた現在の私のヘッダーです。

<head>
<title>The title</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="/scripts/uploadify.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.uploadify.min.js"></script>
<script type="text/javascript" src="scripts.js"></script>
<script type="text/javascript" src="/scripts/ajaxsubmit.js"></script>
    <script type="text/javascript">
        <?php $timestamp = time();?>
        $(function() {
            $('#file_upload').uploadify({
                'formData'     : {
                    'timestamp' : '<?php echo $timestamp;?>',
                    'token'     : '<?php echo md5('unique_salt' . $timestamp);?>'
                },
                'height'   : 25,
                'buttonText' : 'bla bla...',
                'onUploadSuccess' : function(file, data, response) {
                    document.getElementById("uploadedId").innerHTML+='<p style="margin: 0px;"><img width="25px" src="/img/success.png" /><b>' + data + '</b></p>';
                    var str = document.getElementById("uploadedFiles").value;
                    if(str == ""){
                        document.getElementById("uploadedFiles").value=data;
                    }else{
                        document.getElementById("uploadedFiles").value+=',' + data;
                    }
                },
                'swf'      : '/scripts/uploadify.swf',
                'uploader' : '/scripts/uploadify.php'
            });
        });
    </script>
    <script type="text/javascript">
        $(document).ready(function(){
            $('body').on('keyup', 'input', function(e){
                if(e.which==39)
                    $(this).closest('td').next().find('input').focus();
                else if(e.which==37)
                    $(this).closest('td').prev().find('input').focus();
                else if(e.which==40)
                    $(this).closest('tr').next().find('td:eq('+$(this).closest('td').index()+')').find('input').focus();
                else if(e.which==38)
                    $(this).closest('tr').prev().find('td:eq('+$(this).closest('td').index()+')').find('input').focus();
            });
        });
    </script>
</head>

これはJSコードです(いずれも機能していないため、そのうちの1つです...)動作したくないもの(これはscripts.jsにあります):

function companyVatnr(str){

if (str.length==0)
  {
  document.getElementById("companysearch").innerHTML="";
  document.getElementById("companysearch").style.border="0px";
  return;
  }
if(str.length>7){
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("companysearch").innerHTML=xmlhttp.responseText;
    document.getElementById("companysearch").style.border="1px solid #A5ACB2";
    }
  }
xmlhttp.open("GET","ajaxcompany.php?q="+str,true);
xmlhttp.send();
}
}

誰かが私を助けてくれますか、ここで何が問題になる可能性がありますか?

どうもありがとうございます!

4

1 に答える 1

0

scripts.js に構文エラーがあり、すべての関数が機能していませんでした。それを修正した後、すべてが正常に戻りました。

于 2012-11-09T09:38:17.957 に答える