远程表单中的远程链接 - 仅用于提交的ajax回调

时间:2018-04-18 08:40:44

标签: javascript jquery ruby-on-rails

我的页面上有一个远程表单,其中包含一个远程链接:

= form_tag users_path, remote: true, class: 'my-form' do
  .form-group
    = link_to some_remote_path, class: 'btn btn-warning', remote: true
    = text_field_tag 'some_data', 'some_data', class: 'form-control'
  %button.pull-right.btn.btn-primary{type: 'submit'}
    = 'Save'

现在做的是,当您按下“保存”按钮时,它会显示errorsuccess消息,具体取决于AJAX响应。

这是我的咖啡文件:

jQuery ->
  $('.my-form').on 'ajax:success', ->
    $(@).find('.indicator.text-success').show().delay(1000).fadeOut(1000)

  $('.my-form').on 'ajax:error', ->
    $(@).find('.indicator.text-danger').show().delay(1000).fadeOut(1000)

但是,由于此处现在有另一个远程链接(link_to some_remote_path, remote: true),当我按下该链接时也会触发我的回调。

我希望仅在单击“保存”时才显示该消息。在表单外移动远程链接不是一种选择(按设计)。

我做了一些研究,但没有找到任何适用的解决方案。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

在CoffeeScript中,您可以访问触发事件的元素,并仅对其进行更改。

jQuery ->
  $('.my-form').on 'ajax:success', (e) ->
    // Find the parent form of e.target
    // then do what you need just for that one
    $targetForm.show().delay(1000).fadeOut(1000)