使用AJAX和表单验证的不引人注目的jQuery和Rails
我正在寻找一种方法来调用自定义函数成功从 提交者要做正确的ajax文章 以下是我的自定义函数:使用AJAX和表单验证的不引人注目的jQuery和Rails,jquery,ruby-on-rails,ajax,validation,forms,Jquery,Ruby On Rails,Ajax,Validation,Forms,我正在寻找一种方法来调用自定义函数成功从 提交者要做正确的ajax文章 以下是我的自定义函数: jQuery.fn.submitWithAjax = function() { this.submit(function() { $.post(this.action, $(this).serialize(), null, "script"); return false; }) return this; }; 在使用validate插件之前,我有以下几点效果很好: $document.readyfu
jQuery.fn.submitWithAjax = function() {
this.submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
})
return this;
};
在使用validate插件之前,我有以下几点效果很好:
$document.readyfunction{
$my_form.submitWithAjax;
}
现在我已经添加了验证部分,不知道如何调用
自定义submitWithAjax函数
$(document).ready(function() {
$("#my_form").validate({
/*Validations - works perfectly!! */
},
submitHandler: function(form) {
/* $("#my_form").submitWithAjax(); - this works but
introduces recursion */
/* how to call custom subitWithAjax() ????? */
}
});
})
谢谢 您的自定义插件只添加了一个提交事件处理程序,该处理程序与验证器插件不兼容 试试这个
$("#my_form").validate({
/*Validations - works perfectly!! */
},
submitHandler: function(form){
$.post(this.action, $(form).serialize(), null, "script");
});
希望你能找到答案,博根比克。我最终包括了jquery ujs库中的rails.js:
并在验证后调用callRemote函数,而不是submitWithAjax。在Rails 3中为我工作。我在使用时遇到了相同的问题,因此我决定在ajax:beforeSend回调中调用验证。以下是解决方法:
$('form').live('ajax:beforeSend', function(event, xhr, status){
var form = $(this);
form.validate({
/* validation options go here */
});
if (!form.valid()) {
return false;
}
});
这是真的,但我也在每个ajax请求之前进行jQuery和ajax设置:jQuery.ajaxSetup{'beforeSend':functionxhr{xhr.setRequestHeaderAccept,text/javascript};根据您的建议,将不会调用“before send”。@bogumbiker beforeSend事件由$.post方法触发,而不是由submit事件触发。您的beforeSend功能仍将工作。我认为您是正确的,但是服务器端代码ror不再正确处理请求。找不到您的令牌。谢谢@乔恩·菲利普斯——非常感谢。我刚刚在Rails3中启动了一个新项目,并将尝试一下。干杯