Ich rendere Ajax-Link wie folgt:
l(t('Click here'), 'mypath', array('attributes' => array('id' => 'my-id', 'class' => array('use-ajax'))));
Wie wird der Bestätigungsdialog angezeigt, bevor eine Ajax-Anfrage aufgerufen wird?
Ich mache es wie folgt in Javascript, wie ich es in diesem Thread gefunden habe :
Drupal.behaviors.module = {
attach: function() {
Drupal.ajax['my-id'].beforeSerialize = function () {
if(confirm('Are you sure?'))
return true;
else
return false;
}
}
}
Wenn ich auf den Link klicke, wird die Ajax-Anfrage nicht aufgerufen, aber der Dialog wird angezeigt. Es ist okay. Das Problem ist, dass nach dem Klicken auf "Abbrechen" im Bestätigungsdialog die Ajax-Anforderung nach dem Schließen des Bestätigungsdialogs aufgerufen wird.
Kann jemand helfen, wie der Bestätigungsdialog funktioniert?
options.beforeSerialize
oderoptions.beforeSubmit
anstelle vonbeforeSerialize
? Die Dokumentation ist ziemlich schlecht und ich bin mir nicht sicher, welche dieser 3 der richtige Weg ist, aber Sie sollten weniger als 5 Minuten brauchen, um beide zu testen.