Archivlink: javarea.de Forum > JavaScript > überprüfen nach Auswahl
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > überprüfen nach Auswahl

Pages: [1]

geschrieben von Herbert1204 am 22.11.2009 - 20:41
Hallo
Ich habe einmal wieder ein Problem. Es soll in einem Formular nach einer vorherigen Auswahl überprüft werden, ob ein Textfeld oder mindestens eines von sieben Checkboxen ausgewählt wurde. Zum besseren Verständnis siehe das Skript unten.





<SCRIPT LANGUAGE="JavaScript">
<!--
// (C) 2002 Klaus Hentschel [ All rights reserved ].
// e-mail: kh@javarea.de
// www: http://www.javarea.de

function validate_form() {

validity = true;

if ((check_checkbox(document.form.tage[0]) == false) && (check_checkbox(document.form.tage[1]) == false) && (check_checkbox(document.form.tage[2]) == false) && (check_checkbox(document.form.tage[3]) == false) && (check_checkbox(document.form.tage[4]) == false) && (check_checkbox(document.form.tage[5]) == false) && (check_checkbox(document.form.tage[6]) == false)){ /* Funktion Namen (Abfrage) */
validity = false;
show('Layer1');show('Layer2'); /* zeige Fehler */
}
if (validity);
return validity; /* alle Angaben waren korrekt */
}
function check_checkbox(r, v) {
return (r.checked); /* gibt false zurück wenn nicht übergebener Wert */
}
if (((navigator.appName == "Netscape") && (parseInt(navigator.appVersion.substring(0,1)) >=3))
|| ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion.substring(0,1)) >=4)))

{var version=true}

if (document.layers){ /* Browserabfrage: Layer-Object bekannt? */
ns = 1; ie = 0;
}else{
ns = 0; ie = 1;
}
function show(name) {if (ns){ /* Funktion Schicht anzeigen */
document.layers['' + name].visibility = "show";
}else{
document.all['' + name].style.visibility = "visible";
}
}
function hide(name) { /* Funktion Schicht verstecken */
if (ns){
document.layers['' + name].visibility = "hide";
}else{
document.all['' + name].style.visibility = "hidden";
}
}
// -->
</SCRIPT>





<script language="javascript">
function anzeigefeld ()
{
document.getElementById("feld").style.visibility="visible";
}
</script>



<script language="javascript">
function cancel1()
{
document.getElementById("textid").value='';
}
</script>


<script language="javascript">
function cancel2()
{
document.getElementById("checkboxid").value='';
}
</script>


<script>
function schauIt(t) {
v = t.value;
if(v == 'vt') {
document.getElementById('opt_vt').style.display = 'block';
document.getElementById('opt_nt').style.display = 'none';
}
else {
document.getElementById('opt_vt').style.display = 'none';
document.getElementById('opt_nt').style.display = 'block';
}
}
</script>




<form name="form" method="post" action="mailto:Ihre@mail.de?SUBJECT=Betreff für die Mail" enctype="text/plain" onSubmit="return validate_form(this.form)">

<table border="1" cellspacing="0" width="400" bordercolordark="white" bordercolorlight="black">

<tr>
<td height="1" align="left" valign="top">
<input type="radio" name="tage" value="vt" onClick="schauIt(this), cancel1()">
<font face="Arial"><span style="font-size:10pt;">Suche einmalige Mitfahrgelegenheit</span></font><br>
<input type="radio" name="tage" value="nt" onClick="schauIt(this), cancel2()">
<font face="Arial"><span style="font-size:10pt;">Suche regelm&auml;&szlig;ige Mitfahrgelegenheit</span></font>

<div id="Layer2" style="visibility:hidden;"><font color="red" face="Arial"><span style="font-size:10pt;">Bitte gib eine &Uuml;berschrift ein.</span></font></div>

</td>
</tr>
<tr>
<td height="30" align="left" valign="middle">
<table width="400" height="1" cellspacing="0" bordercolordark="white" bordercolorlight="black">

<tr>
<td align="left" valign="top">
<p class="unteroption" id="opt_vt" style="display:none;">
<input type="text" readOnly value="Die Fahrt findet am" style="text-indent:10pt; border-color:white; border-style:solid; width:120px;">
<input type="text" id="textid" style="font-family:Arial,sans-serif; font-weight:bold; font-size:10pt; text-align:center; width:80px;" value="Datum">
<input type="text" readOnly value="statt." style="text-indent:10pt; border-color:white; border-style:solid; width:40px;">

</td>
</tr>
<tr>
<td align="left" valign="top">
<p class="unteroption" id="opt_nt" style="display:none;">
<table cellspacing="0" width="400" bordercolordark="white" bordercolorlight="black">
<tr>
<td width="80" valign="top">
<font face="Arial"><span style="font-size:10pt;">Abfahrtstage:</span></font>
</td>
<td>
<input type="checkbox" name="tage" id="checkboxid" value="monday"><font face="Arial"><span style="font-size:10pt;">Montag</span></font><br>
<input type="checkbox" name="tage" id="checkboxid" value="tuesday"><font face="Arial"><span style="font-size:10pt;">Dienstag</span></font><br>
<input type="checkbox" name="tage" id="checkboxid" value="wednesday"><font face="Arial"><span style="font-size:10pt;">Mittwoch</span></font><br>
<input type="checkbox" name="tage" id="checkboxid" value="thursday"><font face="Arial"><span style="font-size:10pt;">Donnerstag</span></font><br>
<input type="checkbox" name="tage" id="checkboxid" value="friday"><font face="Arial"><span style="font-size:10pt;">Freitag</span></font><br>
<input type="checkbox" name="tage" id="checkboxid" value="saturday"><font face="Arial"><span style="font-size:10pt;">Sonnabend</span></font><br>
<input type="checkbox" name="tage" id="checkboxid" value="sunday"><font face="Arial"><span style="font-size:10pt;">Sonntag</span></font>

</td>
</tr>
</table>

</td>
</tr>
</table>


</td>
</tr>
<tr>
<td height="20" align="left" valign="middle">
<div id="Layer1" style="visibility:hidden;"><font color="red" face="Arial"><span style="font-size:10pt;"><b>Bitte &uuml;berpr&uuml;fe noch einmal deine Eingaben!</b></span></font></div>

<input type="image" src="../zur-Vorschau.gif" width="190" height="30" border="0" name="submit" value="zur Vorschau" onclick="hide('Layer1');hide('Layer2')">

</td>
</tr>
</table>

</form>

geschrieben von Danny am 23.11.2009 - 12:59
Hallo,
irgendwie fehlt hier die Frage dazu ? Oder was geht an deinem Script nicht ?

Gruß Danny

geschrieben von Herbert1204 am 23.11.2009 - 18:25
Hallo Danny
Hier soll das Programm überprüfen, ob das Textfeld einen Inhalt oder mindestens eins der sieben Checkboxen ausgewählt wurde.
Ich kann aber das nur so programmieren, dass entweder nur das Textfeld oder nur die Checkboxen überprüft werden.
Weil aber zuvor eine Auswahl entweder das Textfeld oder die Checkboxen anzeigt, ist logischerweise ein Feld immer leer.
Bei getrennter Überprüfung würde so immer eine Fehlermeldung erscheinen.

Ich hoffe, dass ich das verständlicher beschrieben habe.

geschrieben von Herbert1204 am 23.11.2009 - 20:20

Übrigens

Wie muß eigentlich der Code zum Überprüfen für ein Dropdown aussehen? Kann mir jemand dabei helfen?

geschrieben von Danny am 28.11.2009 - 00:54
Im Prinzip hast du doch den großteil des Codes schon. Es dreht sich im Prinzip ja um den Teil

HTML-Quelltext
1: 
2: 
3: 
4: 
if ((check_checkbox(document.form.tage[0]) == false) && (check_checkbox(document.form.tage[1]) == false) && (check_checkbox(document.form.tage[2]) == false) && (check_checkbox(document.form.tage[3]) == false) && (check_checkbox(document.form.tage[4]) == false) && (check_checkbox(document.form.tage[5]) == false) && (check_checkbox(document.form.tage[6]) == false)) {

...
}


bislang sind die Checkbox Abfrage mit einem UND verrknüpft .. wenn du die && mit || ersetzt (ein ODER) hast du das ganze schonmal so das mindestens eine Checkbox aktiviert sein muss. Für das Textfeld kannst du eine weitere ODER Verknüpfte Abfrage einfügen. In der Art

HTML-Quelltext
1: 
document.form.Datum.value != ""


Gruß Danny


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.