2 Stimmen

Abbrechen Einreichen Auf einem rails remote form_for

Ich habe ein form_for(:remote=>true), das funktioniert, aber ich möchte einen regulären JavaScript-Bestätigungsdialog vor dem Absenden anzeigen.

Gibt es eine Möglichkeit, dies zu erreichen? Idealerweise irgendwie ein :before oder :onsubmit, das das Abbrechen des Absendens mit etwas wie return confirm("Are you sure?"); akzeptieren würde oder vielleicht einen JavaScript-Event-Hook?

Danke

12voto

Michelle Tilley Punkte 153542

Sie können dies einfach mit der confirm Option tun:

<%= for_form @my_thing, remote: true do |f| %>
  <%= f.text_field :my_value %>
  <%= f.submit 'Absenden', confirm: 'Sind Sie sicher?' %>
<% end %>

Sie müssen einen Rails UJS-Treiber verwenden (standardmäßig in neuen Rails-Projekten aktiviert), damit dies nahtlos funktioniert.

Sie haben auch Zugriff auf Hooks in den Form-Übermittlungszyklus, wenn Sie möchten:

  • ajax:beforeSend - ausgelöst, bevor die XHR-Anforderung gesendet wird; geben Sie false zurück, um die Anforderung abzubrechen
  • ajax:success - ausgelöst bei einer erfolgreichen Antwort vom Server
  • ajax:error - ausgelöst bei einer Fehlerantwort vom Server
  • ajax:complete - ausgelöst bei einer erfolgreichen oder fehlerhaften Antwort vom Server

Als Beispiel sollten Sie in der Lage sein, die confirm Form-Helfer-Option mit einem Code wie diesem nachzuahmen:

$("#my_remote_form").on('ajax:beforeSend', function() {
  return confirm("Sind Sie sicher?");
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X