Formularvalidierung hoch joah :)
joah.
- javascript
Hi!
Ich habe 'ne Javascript Funktion die beim Bearbeiten und Verlassen von Elementen der Form aufgerufen wird und je nach dem wenn die Felder ausgefüllt sind, soll der Submit Button disabled werden oder nicht.
Von der Grundidee funktioniert es, ich habe für jedes einzelne Element eine eigene if-Abfrage gesetzt, ich habe aber auf der Seite deutlich über 50 Felder, daher wollte ich die Feldnamen in ein array schieben und so durch das array laufen und die felder prüfen...
anstatt des wertes des arrays bekomme ich allerdings im source code immer den namen des arrays... hat jemand eine idee, woran das liegt?
danke für eure hilfe!
joah.
=====
function validate_form() {
submit = true;
fieldsToBeChecked = new Array("ueberschrift","titel","username","passwort");
for (var i=0; i < fieldsToBeChecked.length; ++i) {
if (document.form.+fieldsToBeChecked[i]+ && document.form.+fieldsToBeChecked[i]+.value.length==0) {
submit = false;
}
}
if (submit) {
document.form.submit.disabled=false;
} else {
document.form.submit.disabled=true;
}
}
hi,
anstatt des wertes des arrays bekomme ich allerdings im source code immer den namen des arrays... hat jemand eine idee, woran das liegt?
fieldsToBeChecked = new Array("ueberschrift","titel","username","passwort");
for (var i=0; i < fieldsToBeChecked.length; ++i) {
if (document.form.+fieldsToBeChecked[i]+ && document.form.+fieldsToBeChecked[i]+.value.length==0) {
submit = false;
fieldsToBeChecked[i] enthält an dieser stelle logischerweise nur die literale "ueberschrift", "titel", etc. - du hast doch wohl nicht etwa etwas anderes erwartet?
schau dir http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines an, und berücksichtige, dass dort für # auch der name eines elements eingesetzt werden kann.
gruß,
wahsaga
fieldsToBeChecked = new Array("ueberschrift","titel","username","passwort");
for (var i=0; i < fieldsToBeChecked.length; ++i) {
if (document.form.+fieldsToBeChecked[i]+ && document.form.+fieldsToBeChecked[i]+.value.length==0) {
submit = false;fieldsToBeChecked[i] enthält an dieser stelle logischerweise nur die literale "ueberschrift", "titel", etc. - du hast doch wohl nicht etwa etwas anderes erwartet?
schau dir http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines an, und berücksichtige, dass dort für # auch der name eines elements eingesetzt werden kann.
freu mich immer von wahsaga etwas zu lesen, steh leider grad total auf dem schlauch, heisst das ich muß das literal in einen string umändern? wie gehts das? *HIIIILFE*
danke.
joah.
if (document.form.elements['fieldsToBeChecked[i]'] && document.form.elements['fieldsToBeChecked[i]'].value.length==0) {
submit = false;
}
so in der art? funktioniert leider auch nicht :(((((((((((((((((
joah.
hi,
if (document.form.elements['fieldsToBeChecked[i]'] && document.form.elements['fieldsToBeChecked[i]'].value.length==0) {
submit = false;
}so in der art?
nein, jetzt hast du ja einen string notiert, wo du eigentlich den wert der array-variablen meintest.
document.form.elements[fieldsToBeChecked[i]]
gruß,
wahsaga
nein, jetzt hast du ja einen string notiert, wo du eigentlich den wert der array-variablen meintest.
document.form.elements[fieldsToBeChecked[i]]
gruß,
wahsaga
Ich küsse dir deine Füsse... Ich hatte das zwar eben auch so probiert, da ging es nicht... Es funktioniert! Du bist ein Javascript Gott ;)
Danke für deine Hilfe!
joah.
Ich küsse dir deine Füsse...
na, wer wird denn gleich..
Hallo joha,
versuche es mal mit eval:
http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#eval
Anstatt:
document.form.+fieldsToBeChecked[i]+.value.length
Lieber:
var field = eval( "document.form." + chkfieldsToBeChecked[i] )
field.value.length
Gruß
Helmut Weber
Hi!
Anstatt:
document.form.+fieldsToBeChecked[i]+.value.lengthLieber:
var field = eval( "document.form." + chkfieldsToBeChecked[i] )
field.value.length
Funktioniert nicht:
Fehlermeldung "OBjekt erwartet "?
function validate_form() {
// body onload immer in load.php ?
submit = true;
fieldsToBeChecked = new Array("username","passwort");
for (var i=0; i < fieldsToBeChecked.length; ++i) {
var field = eval( "document.form." + chkfieldsToBeChecked[i] )
if (field && field.value.length==0) {
submit = false;
}
}
if (submit) {
document.form.submit.disabled=false;
} else {
document.form.submit.disabled=true;
}
}
===============
Seufz,
joah.