我的Rails应用程序中有一系列控制器,在通过Bootstrap 3 Modal输入成功提交AJAX时,它们都渲染了一个create.js.erb文件。我还按照下面的描述添加了错误处理——因此,当服务器返回一个不可处理的实体时,每个模态的错误都会在<span></span>
帮助块中呈现。这一切都很完美。
我的问题是,代码似乎不是很干。我添加到应用程序的每一个新的模态(我现在是7)要求我在Jquery/AJAXerror处理(在我使用它的方式)中瞄准它-见下面的代码:
$(document).ready(function(){
$(document).bind('ajaxError', 'form#new_person', function(event, jqxhr, settings, exception){
// note: jqxhr.responseJSON undefined, parsing responseText instead
$(event.data).render_form_errors( $.parseJSON(jqxhr.responseText) );
});
});
相关部分为$(document).bind('ajaxError', 'form#new_person', function(event, jqxhr, settings, exception){
这是针对form#new_person
,我有一个每个形式在我的应用程序。它工作得很好,但似乎非常不必要重复自己这么多,当我在每个代码块的变化是选择器。
是否有一个方法我可以添加到这个,我可以添加我的每个选择器作为一个列表,或者以某种方式告诉Jquery只触发AJAXerror调用一次?
您可以像这样使用逗号分隔组选择器:
$(document).bind('ajaxError', 'form#new_person, sel#f2, sel#f3, sel#f4',
function(event, jqxhr, settings, exception){
或创建var
选择器,如:
var selectors = 'form#new_person, sel#f2, sel#f3, sel#f4';
$(document).bind('ajaxError', selectors, function(event, jqxhr, settings, exception){
//------------use it here-----^---^---^