gpt4 book ai didi

javascript - 如何干燥我的 Rails/AJAX/Bootstrap 3 模态错误处理?

转载 作者:行者123 更新时间:2023-12-03 09:12:15 25 4
gpt4 key购买 nike

我的 Rails 应用程序中有一系列 Controller ,这些 Controller 在通过 Bootstrap 3 Modal 输入成功提交 AJAX 后都会呈现 create.js.erb 文件。我也关注了this description here添加错误处理 - 因此当服务器返回无法处理的实体时,每个模式的错误都会呈现在 <span></span> 中帮助阻止。所有这些都很完美。

我的问题是代码看起来不太干燥。我添加到应用程序的每个新模态(现在最多 7 个)都要求我在 Jquery/AJAX 错误处理中将其定位(以我使用它的方式) - 请参阅下面的代码:

$(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-----^---^---^

关于javascript - 如何干燥我的 Rails/AJAX/Bootstrap 3 模态错误处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32045438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com