jquery触发器模糊工作不太正常



我对这里发生的事情感到困惑。。。它应该是基本的,但我不太明白。

我正在准备一个表格,其中包含一些需要对照数据库进行检查的信息。当表单加载时,我希望javascript为我需要验证的两个输入框运行"模糊"事件。

事情是这样的。当表单加载时,所有数据都会正确显示,但"用户名"one_answers"电子邮件"输入的触发器("模糊")事件不会被触发。然而,如果我手动将光标放置在每个输入中,然后按下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>

为什么不将您的"检查"函数从用户名和电子邮件元素的模糊事件中删除,并将它们变成自己的一个或多个命名函数?然后调用页面加载和模糊事件上的函数(针对这两个元素)。你的代码工作正常,因为当页面加载时,你会触发一些一开始就没有焦点的东西的模糊。

这应该可以按预期工作。

在新文件中尝试以下代码并进行测试。。。如果它工作正常,那么问题出在同一页上的另一个代码块上,这就是导致此问题的原因。

  • 创建一个简单的HTML页面
  • 向其中添加jQuery脚本文件
  • 添加一个id为"testinput"的输入
  • 添加以下脚本

    $(document).ready(function(){
        $("#testInput").blur(function(){
            alert(1);
        });
        $("#testInput").trigger("blur");
    });
    

最新更新