[gelöst]Form submit durch Enter verhindern
Eingetragen von hnv (28)
am 10.01.2010 - 14:04 Uhr in
am 10.01.2010 - 14:04 Uhr in
Liebe Drupal-Experter,
ich will in meiner Module eine Formular basteln. Es stört mich erheblich dabei, dass die Formular durch Enter gesendet wird. Kann man irgendwie dagegen tun? Oder habt ihr eine andere Lösung für folgendes Problem.
function mymodul_form($form_state) {
$form['name'] = array('#type' => 'textfield', '#title' => 'Name');
$form['name-submit'] = array(
'#type' => 'submit',
'#value' => 'Name senden',
'#submit' => array('_set_name'),
);
$form['vorname'] = array('#type' => 'textfield', '#title' => 'Vorname');
$form['vorname-submit'] = array(
'#type' => 'submit',
'#value' => 'Vorname senden',
'#submit' => array('_set_vorname'),
);
$form['hallo'] = array('#type' => 'textfield');
}
function mymodul_form_validate($form, &$form_state) {
if ($form_state['values']['op'] == 'Name senden') { // es springt beim Enter immer an diese Stelle
if ($form_state['values']['name'] == '') form_set_error('name', 'Bitte Name eingeben');
}
else {
if ($form_state['values']['vorname'] == 'Kong') $form_state['hallo'] = 'Hallo Kong';
if ($form_state['values']['vorname'] == '') form_set_error('vorname', 'Bitte Vorname eingeben');
}
}
function _set_name($form, &$form_state) {
$form_state['hallo'] = 'Sehr geehrter '.$form_state['values']['name'];
$form_state['rebuild'] = true;
}
function _set_vorname($form, &$form_state) {
$form_state['hallo'] = 'Hallo '.$form_state['values']['vorname'];
$form_state['rebuild'] = true;
}
Problem ist, wenn Enter gedrückt wurde, wird nur erstes Submit (Name senden) berücksichtigt.
Am besten soll beim Enter kein Submit-Ereignis ausgelöst werden. Oder zumindesten soll beim Enter die _set_vorname aufgeruft werden. Die Reihenfolge der Submit-Buttons müssen so fest dargestellt werden (erst Name senden, dann Vorname senden).
Ich bin sehr dankbar für eure Hilfe.
Grüße
hnv
- Anmelden oder Registrieren um Kommentare zu schreiben
Formulare
am 10.01.2010 - 15:41 Uhr
Das Formulare mit
[Enter]
abgeschickt werden, ist Standardverhalten (nahezu jeder Anwendung).Deaktivieren kannst Du das evtl. mittels jQuery.
Mal so nebenbei gefragt: warum hast Du 2 Submit-Schaltflächen in einem Formular? Das macht meines Erachtens überhaupt keinen Sinn.
Stefan
--
Sei nett zu Deinem Themer!
Danke für deine
am 10.01.2010 - 21:32 Uhr
Danke für deine Antwort.
Für deine Frage, da Javascript nicht gewünscht ist, brauche ich zwei Submit-Buttons, wobei der erste für zwischene Berechnung dient. D.h. nach dem ersten Button hat der Formular noch andere Felder, welche beim Klick des ersten Button noch nicht berücksichtigt werden sollen.
hnv
multistep
am 10.01.2010 - 22:06 Uhr
Such mal nach "multistep forms".
hth,
Stefan
--
Sei nett zu Deinem Themer!
danke, das wäre was.
am 11.01.2010 - 08:40 Uhr
danke, das wäre was.
Grüße
hnv