如何在jQuery Validation submitHandler函数中使用jQuery通知插件

时间:2014-12-15 13:10:39

标签: jquery jquery-validate

在我的表单中,我使用jQuery Validate进行验证。完成验证后,应使用jQuery Notification插件显示成功消息。我的验证码是

  $("#validateForm").validate(
{
    debug: false,
    rules: 
    {
firstname: {
    required: true,
    lettersonly: true
},
lastname: {
    required: true,
    lettersonly: true
}

 },
 messages: {
firstname: {
    required: "Please enter your firstname"
},
lastname: {
    required: "Please enter your lastname"
}
    },
 submitHandler : function(msg){

    showNotification({
                        message: "hi",
                        type: "success",
                        autoClose: true,
                        duration: 5                                        
                    }); 

 },

});

验证后显示通知消息并消失一些间隔。我使用的是这个插件http://demos.9lessons.info/jnotification/?type=error&message=This%20is%20sample%20PHP%20get%20parameters%20reading%20notification

验证字段后,表单未显示通知消息。 showNotification()功能不起作用。如何在submitHandler()

中插入通知功能

1 个答案:

答案 0 :(得分:0)

我不知道你在哪里获得了Show Notification插件,因为the page没有任何下载链接;它似乎还有很多年,因为它使用的是jQuery 1.4。我甚至无法设置正确的演示,因为您没有费心向我们展示相关的HTML。

但是,您向我们展示的jQuery Validate代码绝对没有错。

引用OP:

  

“验证字段后,表单未显示通知消息。showNotification()功能无法正常工作。如何在submitHandler()内插入通知功能?” < / p>

我认为你可能会误解submitHandler函数的工作原理。它仅在您单击提交按钮时触发,然后在所有字段均有效时触发。在单独验证每个字段后,它不会触发。

否则,请编辑您的问题以包含表单的相关HTML标记。


我发现您已将form参数重命名为msg submitHandler函数。重命名它不会破坏它,但它表明你完全误解它代表什么。插件开发人员提供了form参数作为表单对象的表示。您可以随意重命名,但它始终代表表单对象

submitHandler: function(form) { ...

修改

正如所怀疑的那样,showNotification插件已经过时了。在下面的jsFiddle中,您可以看到绿色通知栏闪烁,然后控制台错误告诉您.live()showNotification插件内)是未定义的函数。 (自{jQuery 1.7以来,.live()已被弃用,自jQuery 1.9以来已被删除)

DEMO 1:http://jsfiddle.net/9qenjr42/

降级到jQuery v1.8.3会显示您的代码有效:http://jsfiddle.net/9qenjr42/2/

但是,我不建议降级jQuery只是为了使用旧的插件。以下是一些建议......

  • 将其替换为现代且维护得更好的通知插件
  • 要求开发人员更新他的jQuery的新版本的插件代码
  • 自己更新插件代码