我的页面上有一个远程表单,其中包含一个远程链接:
= 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'
现在做的是,当您按下“保存”按钮时,它会显示error
或success
消息,具体取决于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
),当我按下该链接时也会触发我的回调。
我希望仅在单击“保存”时才显示该消息。在表单外移动远程链接不是一种选择(按设计)。
我做了一些研究,但没有找到任何适用的解决方案。任何帮助表示赞赏!
答案 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)