formularüberprüfung
daddyd
- javascript
Hallo,
ich habe ein Problem. Ich generiere mit PHP eine Seite, auf der für jeden Datensatz ein Formular drauf ist. Jetzt will ich mit Javascript die Eingabe überprüfen. Ich stehe jetzt aber vor dem Problem, wie ich Javascript mitteile, welches Formular es prüfen soll.
Mein Versuch war:
<script language='JavaScript' type='text/javascript'>
<!--
function checkgroupformular(groupeditname) {
if (document.groupeditname.groupname.value == '') {
alert('Please enter groupname!');
document.groupeditname.groupname.focus();
return false;
}
}
//-->
</script>
Und das Formular, was die Datensätze beinhaltet:
<form name='groupedit".$row[id]."' action='$PHP_SELF?session_id=".$session_id."' method='POST'>
<input type='text' name='groupname' value='".$row[groupname]."' size=15 maxlength=20></td>
<input type='submit' name='submit_groupsave' value='save' onClick='return checkgroupformular(groupedit".$row[id].")'>
</form>
Er nimmt jetzt aber nicht groupeditname im document.groupeditname.groupname.value an.
Hallo,
das geht viel einfacher. Über onsubmit ruft man die Validierungsfunktion auf und übergibt ihr this, das steht in dem Fall für das form-Elementobjekt:
<form action="..." onsubmit="return checkgroupformular(this)">
Und im JavaScript nimmt man das Formularobjekt als Parameter an und kann darüber gleich auf die Formularfelder zugreifen:
function checkgroupformular (formular) {
if (formular.elements.groupname.value == '') {
...
formular.elements.groupname.focus();
usw.
Mathias
Vielen Dank, das funktioniert fabelhaft, aber nun ein kleines anderes Problem. In dem Formular ist auch ein Cancel-Button, aber als normaler type=submit.
Jetzt muss ich auch, obwohl ich Cancel drücke mein Formular ausgefüllt haben. Kann ich das noch umgehen?
Hallo,
In dem Formular ist auch ein Cancel-Button, aber als normaler type=submit.
In dem Fall war dein Ansatz mit onclick beim Button natürlich besser als das allgemeine onsubmit.
An die besagte Funktion wird this.form übergeben, was zum selben form-Elementobjekt führt:
<input type="submit" name="submit_groupsave" value="save" onclick="return checkgroupformular(this.form)">
Beim Cancel dann halt einfach das JavaScript weglassen, z.B.
<input type="submit" name="cancel_groupsave" value="cancel">
Mathias
Klappt wie gewünscht. Vielen Dank.