【问题标题】:jQuery Plugin Conflict - Validate and jQuery FormjQuery 插件冲突 - 验证和 jQuery 表单
【发布时间】:2012-07-23 18:30:01
【问题描述】:

我有一个使用 jQuery Validate (jQuery Validate) 和 jQuery Form (jQuery Form) 的网站。我的问题是,当我在 ajaxSubmit 上使用成功回调时,当在 Validate 上调用成功回调时,会调用 ajaxSubmit 成功回调。

我在这里 ajax 表单,并在 Validate 下将 submitHandler 设置为 ajaxSubmit:

/******* Validate Function Options (not complete function) ************/
success: function(label) {
  label.addClass("checked");
}, 
submitHandler: function(form) {
  $(form).ajaxSubmit();
}

/******* AjaxForm Options/Initilization ************/

var options = { 
  target: '#server-response',       
  success: showResponse,
};

$('#consultation-form').ajaxForm(options);

我的困境是,当验证成功时(在验证时调用成功回调),它也会从 AjaxForm 选项中调用成功回调。花了最后一个小时在这里环顾四周,这就是我找到 submitHandler 的方式。

这里的 JsFiddle,由于我的帖子而无法使用,但它是整个 js 和 html。 http://jsfiddle.net/UUDb6/

感谢您的任何建议。

【问题讨论】:

  • 我认为问题在于 ajaxSubmit 和 Validate 在调用服务器时都使用相同的 PHP 脚本。所以两个框架都在监听来自同一个脚本的响应。是否可以分别为 ajax 和验证部分使用单独的脚本?

标签: javascript jquery ajax validation jquery-plugins


【解决方案1】:

看起来您可以分别在 jQuery 验证和 ajax 表单的选项中定义自定义 URL。例如:

$("#myform").ajaxForm({
   url: "mypage1.php",
   type: "POST",
   ...
 });

$("#myform").validate({
   url: "mypage2.php",
   type: "POST",
   ...
 });

您可以对$(form).validate(options) 使用类似的选项;

您可以复制您的 PHP 回调脚本并更改名称,因此 validate 函数使用一个脚本,而 ajaxSubmit 使用另一个。

【讨论】:

  • 我的验证函数没有使用 php 回调脚本。实际上,它们都只是使用来自 js 的内置回调。我可以看到为表单工作定义自定义 url,但是为什么我要为验证定义自定义 url,因为它只是客户端 js?
  • 你可以试试看它是否有效? ;-) 无论哪种方式,它只是一个 HTML 表单,所以我认为您也可以使用 validate 提交表单,您不需要单独使用 .ajaxForm
  • 谢谢!我删除了 ajaxform 部分,并将验证函数更新为如下所示:` $(form).ajaxSubmit({success: showResponse, target: '#server-response'});` 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多