Mam formularz, który może być używany zarówno zdalnie, jak i normalnie.Jak zatrzymać wysyłanie formularza zdalnego?
= form_for @comment, html: { class: 'comment-form' }, remote: request.xhr? do |f|
= f.text_area :body
= f.submit
Chcę formularz złożyć tylko wtedy, gdy body
textarea ma zawartość:
$(document).on 'submit', '.comment-form', (e) ->
text = $(this).find('#comment_body').val()
false if text.length < 1
Ten kod działa, gdy formularz nie jest Ajax. Ale gdy jest odległy, zawodzi, a formularz nadal jest przesyłany. Czemu? Próbowałem również:
if text.length < 1
e.preventDefault()
false
Używam Rails 4 z Turbolinks.
Aktualizacja: próbowałem wiążące zdarzenie ajax:beforeSend
, to nadal utrzymuje:
$(document).on 'page:load', '.comment-form', ->
$(this).bind 'ajax:beforeSend', ->
alert "hi"
widzę żadnego wpisu ...
'required: true' dodaje atrybut HTML5, który nie działa w połowie przeglądarek. To nie jest niezawodne. Przynajmniej nie w tym czasie. – user2630970
Dobrze wiedzieć! Twoje zdrowie. – Miotsu