Использование remote: true в Rails работает в Chrome, но не в Safari - похоже, проблема при вызове функции успеха из файла js.erb

0

У меня есть вложенная форма (с использованием nested_form gem), на которой я вызываю remote: true.

= nested_form_for @shopping_list, :remote => true, :html => {:class => "shopping-list-    form"} do |f|

Я связал это с действием create в контроллере, и функция успеха возвращает следующее из файла create.js.erb:

closeShoppingListForm();
$("#submit-success").delay(500).fadeIn(500);
$("#submit-success").delay(2000).fadeOut(500);

$.getScript(this.href);
return false;

Все работает гладко в Chrome - пока еще не протестировал Firefox. Ранее эта проблема была затронута Safari, но в прошлый раз это была функция, которая отсутствовала в закрытии ";" - не проблема с получением функции успеха из файла js.erb.

Это код из js файла для страницы для функции closeShoppingListForm - он делает то, что звучит, - закрывает кучу вещей:

function closeShoppingListForm() {
  $("#shopping-list-form").hide();
  $("#running-total").hide();
  $("#total").hide();
  $("#create-shopping-list").fadeIn(500);
  $(".icon-remove").trigger("click");
  $("#shopping_list_name").val('');
  $("#total").html('');
 inventoryItemsQuantities = new Array();
};

Быстро искал и смотрел на SO некоторое время - но сейчас настало время представить его и посмотреть, ударил ли кто-нибудь еще в этом. Любая помощь вообще приветствуется - большое спасибо за то, что вы посмотрели.

Дайте мне знать, нужны ли какие-либо другие фрагменты кода.

Благодарю!

  • 0
    Есть ли у вас какие-либо ошибки?
Теги:
ruby-on-rails-3

1 ответ

1
Лучший ответ

Простое исправление... мы некоторое время смотрели на него, и это было просто слишком быстро и бросать "return false" после.getScript...

Возможно, это поможет кому-то еще не совершить ту же ошибку.

closeShoppingListForm();
$("#submit-success").delay(500).fadeIn(500);
$("#submit-success").delay(2000).fadeOut(500);

$.getScript(this.href);
  • 0
    Пожалуйста, отредактируйте свой вопрос, чтобы в коде отображалось «return false». Таким образом, он покажет зрителям актуальную проблему, которая будет более полезной.
  • 0
    Привет jschorr - это там в вопросе. Сразу после $ .getScript (this.href); - это следующая строка. Я опубликую код без этого в ответе, чтобы уточнить разницу.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню