我对这里发生的事情感到困惑......它应该是基本的,但我不太明白。
我正在预先填充一个表单,其中包含一些需要根据数据库进行检查的信息。当表单加载时,我希望 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>
最佳答案
为什么不将您的“检查”功能从用户名和电子邮件元素的模糊事件中取出,并将它们放入自己的命名函数中?然后在页面加载和模糊事件上调用该函数(对于这两个元素)。您的代码工作正常,因为当页面加载时,您会触发一些本来就没有焦点的内容的模糊。
关于jquery 触发模糊效果不太好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746931/