• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Feldüberprüfung bei checkbox "onklick"

Heavy-Dee

Mitglied
Hallo zusammen,
ich benutze folgende Funktion zur Feldüberprüfung bei einem Formular.
Code:
<script type="text/javascript">
// Feldüberprüfung
function chk_WtgMode()
{
var form = document.w_frm;
 
// Eingabefeld "versnr"
if (form.versnr.value == "")
{
form.versnr.style.backgroundColor="#FF9093";
form.versnr.focus();
return false;
}
form.versnr.style.backgroundColor="#FFFFFF";
// Eingabefeld "changes"
if (form.changes.value == "")
{
form.changes.style.backgroundColor="#FF9093";
form.changes.focus();
return false;
}
form.changes.style.backgroundColor="#FFFFFF";
 
return true;
}
</script>
Wenn ich diese über einen Submit Button aufrufe
Code:
<input class="frm_btn" name="wtg" id="btn_wtg" type="submit" value="Ok"></input>
funktioniert auch alles wunderbar.
Allerdings wird das Formular über eine Checkbox mit (onclick="w_frm.submit()") gesendet.
Damit funktioniert es leider nicht.
Kann mir jemand einen Tipp geben ??

Hier der FormCode
Code:
<form name="w_frm" onsubmit="return chk_WtgMode()" method="POST" action='admin.php?mpkt=1'>
<fieldset class="inline">
<legend class="inline"> Wartungsmode </legend>
<div class="box_inline_format"  style="width: 75px">
<!-- Checkbox "Wartungsmodus" -->
<input type="hidden" name="wtgmode" value="0">
<input type="checkbox" onclick="w_frm.submit()" name="wtgmode" value="1" <?php if($_Wtg_Mode == 1) echo "checked"; ?>/>
<?php
if($_Wtg_Mode == 1)
{
echo "&nbsp;<u>aktiviert</u>";
}
?>
</div>
<div class="box">
<!-- Input "Versions-Nr" -->
<label class="frm" >Version:</label>
<input class="frm_60" type="text" name="versnr" value="<?php echo $_Vers_Nr; ?>" >
</div>
<div class="box">
<!-- Bezeichnung und Eingabe "Änderrungen" -->
<label class="frm" >Änderrungen:</label>
<textarea class="frm_300" type="text" name="changes"></textarea>
</div>
</fieldset>
</form>

Vorab Danke
 
Werbung:
Die Javascript submit() Methode triggert nicht das onsubmit event.
Du könntest bei onclick auf die checkbox deine Validierungsfunktion aufrufen und dort abhängig vom Validierungsergebnis das submit aufrufen.
 
Werbung:
Du rufst deine Validierungsfunktion mit onsubmit="return chk_WtgMode()" auf. Das funktioniert bei einem "richtigen" submit. Beim Javascript submit() wird das event "onsubmit" aber nicht getriggert und die Funktion deshalb nicht ausgeführt.
 
ok
Habe folgendes versucht:
Aufruf der Funktion "chk_WtgMode()" aus der Checkbox mit onklick. --> funktioniert soweit.
Habe das script wie folgt geändert:
Code:
<script type="text/javascript">
    // Feldüberprüfung
    function chk_WtgMode()
    {
        var form = document.w_frm; 
        var wtgmode = "<?php echo $_Wtg_Mode; ?>";
        if (wtgmode == "1")
        {
            // Eingabefeld "versnr"           
            if (form.versnr.value == "")
            {
                form.versnr.style.backgroundColor="#FF9093";
                form.versnr.focus();
                return false;
            }
                form.versnr.style.backgroundColor="#FFFFFF";

            // Eingabefeld "changes"
            if (form.changes.value == "")
            {
                form.changes.style.backgroundColor="#FF9093";
                form.changes.focus();
                return false;
            }
                form.changes.style.backgroundColor="#FFFFFF";
        }
        form.submit();   
    }
</script>

--> das neue Problem ist folgendes:
kurze Erläuterung:
mit dieser Seite soll der Wartungsmodus der Webseite aktiviert werden (Funktionen alle i.O)
Checkbox gesetzt -> Wartungsmode aktive -> Änderrungen werden dgf.
Wenn die Seite wieder regulär online gehen soll wird die Checkbox deaktiviert ($_Wtg_Mode von 1 auf 0). Vorher soll aber geprüft werden ob die Versionsnummer und die Änderrungen für die Changelog-datei eingetragen wurden.
Soweit geht jetzt auch alles.
ABER:
wenn ich die Checkbox deaktiviere, geht die Feldüberprüfung los und hält bei einem "leeren" Feld an. --> die Checkbox ist aber schon deaktiviert.
Wie kann ich den Zustand der Checkbox erst bei abgeschlossenem Submit() ändern ???
 
Dann pack die Validierung doch in eine if() Abfrage, dass sie nur durchgeführt wird wenn die checkbox gesetzt ist.

Mal im Ernst, 'ne checkbox als Submit ist ziemlich strange...
 
Werbung:
Zurück
Oben