0

私は現在、新しいウェブサイトを開発しており、現在機能をテストしています。すべてのコードが機能しますが、エラーが返され、理解も解決方法もわかりません。

<script type="text/javascript">
var eval = "Indtast CPR-nummeret, der skal valideres.";
$(document).ready(function () {
   $("#showads").html($("#ads").html());
});
function cprToBool(cpr){
    $.get('ajax.php',{ content: cpr }, function(data) {
        eval = data;
        $("#cprinput").val(eval);
        $("#cprinput").blur();
        });
             $("#showads").html($("#ads").html());   
}
function checkSubmit(e)
{
  if(e && e.keyCode == 13)
   {
    cprToBool($("#cprinput").val());
   }
}
</script>

デバッグ後、私はそれが

$("#showads").html($("#ads").html());

それがこれらのエラーの原因です。戻る

Uncaught TypeError: Object Indtast CPR-nummeret, der skal valideres. has no method 'call' 

これはeval変数の名前です。なぜこれをしているのか誰にもわかりますか?

PS。jQueryを正しく含めました。

4

2 に答える 2

1

変数の名前を別のevalものに変更してください...eval2うまくいくでしょう。

jQuery ライブラリ内の何かが組み込みメソッドを使用しようとしてevalいますが、文字列で上書きしたため実行できません...これは呼び出し可能ではありません。

jQuery はこのコードを数回使用します。

window[ "eval" ].call

evalまた、変数をグローバルスコープで宣言したため、window[ "eval" ]上書きされています。別のスコープで (どういうわけか) 宣言した場合、jQuery コードと競合することはありませんがeval、そのスコープでは組み込みメソッドを使用できなくなります。

于 2012-12-18T17:41:49.390 に答える
0

ここでの回答/コメントは正しいです。上書きevalにより、他のコードがつまずきました。提案されているように、変数名を変更できますが、IMO は実際にはローカライズされた変数を使用することをお勧めします。独自のコードの範囲で使用する予定がない限り、変数がコードからのみ見える限り、変数をeval上書きすることはそれほど問題ではなく、まったく問題ではありません。

于 2012-12-18T17:45:36.647 に答える