これはちょっと混乱しています。 最初にいくつかの背景:JQueryのキーアップイベントが外部のjsファイルで機能しない
私はhtmlファイルを作成しました(実際にはPHPファイルでしたが、PHPはフォーム検証のためのものでした)。私はいくつかの検証を行うために、使用された。すべてがうまくいきました。私はサイトの他の部分でこのコードを使用する可能性があると判断したので、コードを保持する外部のjsファイルを使いこなすようになりました。元のHTMLコード内
:
<script type="text/javascript">
$(document).ready(function(){
if($("#userN").val() == ""){
$("#testUserName").html("");
}else{
ajax_search();
}
$("#userN").focusout(function(){
ajax_search();
});
$("#userN").keyup(function(){
ajax_search();
});
});
</script>
ajax_search()だけuserN入力フィールドにテキストを使用してデータをテストするためのPHPファイルへのリクエストを送信します。
私はそれをajax_search()関数をtest.jsファイルにコピーしました。まず、jquery.jsファイルが最初に呼び出されたことを確認してから、そのコードを含むtest.jsファイルを呼び出しました。
奇妙なことは、test2はなく、focusoutまたはkeyUpイベントと別のポップアップが機能しませんTEST1とポップアップが表示されます
$(document).ready(function(){
alert("test1");
if($("#userN").val() == ""){
$("#testUserName").html("");
}else{
ajax_search();
}
$("#userN").focusout(function(){
ajax_search();
});
$("#userN").keyup(function(){
ajax_search();
});
alert("test2");
});
そのコードを実行します.ready $(文書)です。
私はすべてのコードをhtmlファイルからajax_search関数を除いたものに戻すまで、何もしなかった。それは私が望んだものですが、なぜイベントがうまくいかないのかわかりません。私は何か間違っていたのですか?このようにすることはできませんか?
ここで 'ajax_search()'関数はどこに定義されていますか?あなたが 'ajax_search()'を宣言する前に 'test.js' *を含めることが可能です。 – Clive
$(document).ready()からajax_search()を実行した場合、test.jsファイル内にありました。 );キーアップが機能していなかったとうまく動作します。 .keyup()イベントで警告(「あなたがキーを押した!」)を置くと、それは起動しません。 – Dreadfulgravy
Firefoxのコンソールウィンドウにエラーがないと言いましたが、私は他のブラウザをチェックしませんでした。今までのところそれだけではうまくいかなかったエラーはありません。 – Dreadfulgravy