Не может представить JavaScript от контроллера направляющих

Я хочу отобразить модальное окно с сообщением об ошибке, когда пользователь ввел что-то недопустимое в форму, но представляет другое действие, если все в порядке. Однако, когда я пытаюсь отобразить модальное окно с

render :js => "jQuery.facebox(#{...})"

только фактический названный JavaScript отображен:

try {
  jQuery.facebox(...)
} catch (e) { alert('RJS error:\n\n' + e.toString());
  alert('jQuery.facebox(\"<div class=\'error\'>Error</div>\")');
  throw e;
}
6
задан Oxfist 4 October 2017 в 03:37
поделиться

3 ответа

Попробуйте это

 render :update do|page|
   page <<  "jQuery.facebox(#{...})"
 end
1
ответ дан 10 December 2019 в 02:43
поделиться

Возможно, вам следует указать в вызове jQuery dataType ожидаемого ответа.

Например:

$.ajax({ 
  url: "/controller/action/id", 
  success: function(){
    $(this).addClass("done");
  },
  dataType: 'script' 
});
1
ответ дан 10 December 2019 в 02:43
поделиться

Вы пробовали поместить код в частичную? Так что вместо

render :js => "jQuery.facebox(#{...})"

попробуйте

render :partial => "my_facebox_popup" 

Затем внутри вашего _my_facebox_popup.html.erb частично поместите свой код:

<script type = "text/javascript">
...
</script>

отладьте любые ошибки, которые вы получаете с firebug .

7
ответ дан 10 December 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: