3

テキスト領域が空白の場合、フォームの投稿を停止したい。jQuery と Turbolinks を使用しています。にバインドする必要がありますがajax:beforeSend、動作させることができます:

  $(document).on 'page:load', '.task-form', ->
    $(this).bind 'ajax:beforeSend', ->
      alert "hi"

フォームを送信してもアラートが表示されません。理由はありますか?

ajax経由でフォームをリモートでロードしています。

# tasks/new.js.erb
$('.task-form-wrapper').append('<%= j render("form") %>');
$('#task_name').focus();
4

1 に答える 1

0
$(document).on 'page:load', '.task-form', ->

page:loadイベントは.task-form要素でトリガーされるのではなく、 でトリガーされますdocument。次のように変更する必要があります。

$(document).on 'page:change', ->
  $('.task-form').on 'ajax:beforeSend', ->
    alert 'hi'

それ以外の場合は、最初のページ要求がフォームのビューにある場合にのみ機能するように変更page:loadしました。新しいページが読み込まれるたびにトリガーされます。page:changepage:change

于 2015-11-11T12:52:24.263 に答える