我对这里发生的事感到困惑......它应该是基本的,但我无法弄明白。
我正在预先准备一份表格,其中包含一些需要根据数据库进行检查的信息。当表单加载时,我希望javascript运行我需要验证的两个输入框的“模糊”事件。
这是发生了什么事。当表单正确加载所有数据时,“用户名”和“电子邮件”输入的触发器(“模糊”)事件不会被触发。但是,如果我手动将光标放入每个输入中,然后按Tab键,或者在框外单击,则会触发“模糊”事件。
我需要它在页面加载时触发,以警告用户预先填充的数据是否与现有数据冲突...任何想法我做错了什么或如何使其工作?
提前致谢。
<script type="text/javascript">
$(document).ready(function(){
//Username
$("#username").blur(function(){
$("#usr_available_msg").html("Checking").addClass("error_msg ui-state-error");
});
//email
$("#email").blur(function(){
$("#email_available_msg").html("Checking").addClass("error_msg");
});
//Run validation check on page load
$("#username").trigger("blur");
$("#email").trigger("blur");
});
</script>
答案 0 :(得分:4)
为什么不将“检查”功能从用户名和电子邮件元素的模糊事件中删除,并将它们放入自己的命名函数中?然后调用页面上的函数加载和模糊事件(对于这两个元素)。您的代码工作正常,因为当页面加载时,您会触发对从未有过焦点开始的事物的模糊。
答案 1 :(得分:1)
这应该按预期工作。
在新文件中尝试以下代码并测试它... 如果它工作正常,那么问题在于同一页面上的另一个代码块导致了这个问题。
添加以下脚本
$(document).ready(function(){
$("#testInput").blur(function(){
alert(1);
});
$("#testInput").trigger("blur");
});