好的,这让我感到困惑。 首先是一些背景:
我创建了一个html文件(它实际上是一个php文件,但php只是用于表单验证)我决定创建一些javascript来动态进行一些验证,如检查用户名是否已被使用。一切都很好。然后我决定在网站的其他部分使用这个代码,所以我开始搞乱持有代码的外部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()只是向php文件发送请求,以测试userN输入字段中的文本数据。
所以我将它和ajax_search()函数复制到test.js文件中我确保首先调用了jquery.js文件,然后用它中的代码调用了test.js文件。
奇怪的是$(文件).ready运行
$(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");
} );
该代码将显示一个带有test1的弹出窗口,然后是另一个带有test2的弹出窗口,但焦点或键盘将不起作用。
在将所有代码放回html文件中减去ajax_search函数之前,我没有做过任何工作。这是我想要的,但我不明白为什么事件不起作用。我做错了吗?不能这样做吗?
答案 0 :(得分:1)
使用
$("#userN").on('keyup', function(){ ajax_search(); });
答案 1 :(得分:0)
代码对我来说似乎没问题,你的问题在其他地方就已经存在了。试试这段代码,让我们知道结果 -
$(document).ready(function(){
if ($("#userN").val() == "") {
$("#testUserName").html("");
} else {
alert("1");
}
$("#userN").focusout(function() {
alert("2");
});
$("#userN").keyup(function() {
alert("3");
});
}
答案 2 :(得分:0)
我有同样的错误,问题是我在2个不同的文件中实现了document.onkeyup。解决方案:合并或删除其中之一