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:change它仅在第一页请求在表单视图上时才有效。page:change每次加载新页面时触发。

于 2015-11-11T12:52:24.263 回答