Textfeld und Kontrollfeld per "Validate" prüfen ?

elreydebesos

Mitglied
Hallo,

mein Formular enthält sowohl mehrere Textfelder, als auch ein Kontrollfeld die Pflichttfelder sein sollen.

Abfrage funktioniert so (Auszug)

Textfeld:

onsubmit="return FSubmitValidation(this)">

Kontrollkästchen:

onsubmit="return checkCheckBox(this)">

Funktioniert so auch (einzeln) gut.


Aber wie bekomme ich beide zusammen, also das beide bei "onSubmit" geprüft werden ?

onsubmit="return FSubmitValidation(this);checkCheckBox(this)">

hab ich schon probiert, sowohl mit Semikolon getrennt als auch mit Komma.

Funktioniert leider nicht, bzw. immer nur eines von beiden !

Weis jemand Rat ?


Vielen Dank und Gruß,

Sascha
 
Hallo!

Dein Versuch

Code:
onsubmit="return FSubmitValidation(this);checkCheckBox(this)">

kann ja garnicht funktionieren, da mit "return" doch schon gesagt wird - bis hier hin und nicht weiter.

Die einfachste Möglichkeit wäre es, die Funktion "checkCheckBox()" in die Funktion "FSubmitValidation()" zu integrieren.
Einfach in dieser Funktion die Funktion "checkCheckBox" z. B. folgendermaßen aufrufen:

Code:
FSubmitValidation(id)
{
if (!checkCheckBox(id)) return false;

// weiterer Code
}
 
wie jetzt ?

so ?:

<SCRIPT LANGUAGE="JavaScript">
<!--- hide script from old browsers

function FValidateControl(control) {
if (control.value=="") {
alert(control.name+": Dieses Feld ist erforderlich. Sie müssen einen Wert einsetzen, bevor das Formular im Web publiziert werden kann.")
control.focus()
return false }
return true }

function checkCheckBox(f){
if (f.AGB.checked == false )
{
alert('Du mußt die AGB akzeptieren, um bestellen zu können !');
return false;
}else
return true;

function FSubmitValidation(form) {
if (!checkCheckBox(f)) return false;
if (!FValidateControl(form.EMAIL)) return false
if (!FValidateControl(form.INTERNAL_INFORMATION)) return false
return true }

// end hiding from old browsers -->
</SCRIPT>



und dann : onsubmit="return FSubmitValidation(this)">


hab ich probiert....geht leider auch nicht :-(


Also der Quelltext liegt hier:

http://netgirls24.de/andrea/order/angebot.html

Vielleicht wird ja jemand daraus schlau.

Gruß, Sascha
 
Das mit "return" ist schon korrekt so... liefert die aufgerufene Funktion "true" zurück, wird das Formular gesendet, andernfalls nicht.

Probiers mal hiermit
Code:
<script type="text/javascript">
<!--
must=new Array('textfeld1','textfeld2','textfeld3','checkbox1');

function validate(frm)
{
for(i=0;i<must.length;++i)
    {
    obj=frm.elements[must[i]];
    eChk=(obj.type=='checkbox')?obj.checked:obj.value.search(/\S/)>-1;
    eMsg=(obj.type=='checkbox')?'Bitte aktivieren Sie die Box':'Bitte füllen Sie das Feld aus';
    if(!eChk){alert(eMsg);obj.focus();return false;}
    }
return true;
}
//-->
</script>
.....
<form onsubmit="return validate(this)">
Im Array[] "must" gebe die Namen der Pflichtfelder an... das wars :)
Eins für alles.
Die Meldungen kannst du ja noch anpassen...


BTW:bis 31.03. sind Dufthöschenwochen :)
 
Zuletzt bearbeitet:
Online bestellformular

Hallo,

ich hoffe mir kann jemand helfen:
Ich habe 8 Textfelder die ich als Pflichtfelder defenieren möchte und bei nicht erfüllen der Pflicht felder ein Massage
z. B. "Die Pflichtfelder bitte ausfüllen ! "
geben könne.

und dann soll es bei "Abschicken" als Formular oder EMail kommen damit ich die bestellung bestätigen kann. Und bei "Löschen" sollen die Felder gelöscht werden, aber wenn ich im MS IExplorer auf "Zurück" klicke soll die felder nicht gelöscht werden.

Wer kann mir das helfen. ?
 
Re: Online bestellformular

Original geschrieben von momo-der-dritte
Ich habe 8 Textfelder die ich als Pflichtfelder defenieren möchte und bei nicht erfüllen der Pflicht felder ein Massage
z. B. "Die Pflichtfelder bitte ausfüllen ! "
geben könne.
Für eine Massage mach ich das doch gerne :)

Code:
<html>
<head>
    <script type="text/javascript">
      function check(){
        for(var x=0; x<document.formular.length; x++){
          var elem = document.formular.elements[x];
          if((elem.name.substring(elem.name.length-2,elem.name.length)=='_r') && (elem.value=='')){
            alert('Ausfüllen alle Felder ausfüllen');
            elem.focus();
            return false;
          }
        }
        return true;
      }
    </script>
</head>
<body>

<form name="formular" onSubmit="return check()">

<input type="text" name="text1_r">
<input type="text" name="text2_r">
<input type="text" name="text3_r">
<input type="text" name="text4_r">
<input type="text" name="text5_r">
<input type="text" name="text6_r">
<input type="text" name="text7_r">
<input type="text" name="text8_r">

<input type="submit">
</form>

</body>
</html>
ist nur eine von vielen möglichkeiten. Die Felder die Pflicht sind kennzeichnest du einfach mit einemm _r am ende des Namens.

und dann soll es bei "Abschicken" als Formular oder EMail kommen damit ich die bestellung bestätigen kann.
Das mit der Email machst du nicht mit Javascript sonder mit einer Serverseitigen Sprache wie PHP oder ASP - am besten schaust du im betreffenden Forum nochmal nach.

Und bei "Löschen" sollen die Felder gelöscht werden, aber wenn ich im MS IExplorer auf "Zurück" klicke soll die felder nicht gelöscht werden.

Wer kann mir das helfen. ?
Ähmm... das kann ich mir jetzt nicht vorstellen. Wenn, dann gehts am besten über Cookies, da es keinen onHistoryBack Event gibt wird das aber aufwendig. Erklär mir bitte das Szenario noch etwas genauer :)
 
Online Bestellformular

Hi,

besten dank für die schnelle Antwort, vielleicht habe ich mich unverständlich ausgedrückt.

Das Szenario:

Der Kunde füllt das Formular aus, beim Abschicken, sollte ich eine Benachrichtigung bekommen, damit ich es beim Kunden bestätigen kann.

So und beim Löschen ( wenn der Kunde es sich anders überlegt, sollte es bei Löschen das Formular gelöscht werden ( alles leer ). Und im IExplorer sollte es auch gelöscht sein.

danke
momo
 
Hallo, das ist zwar schon ein älterer Thread, aber für mein Problem genau richtig:).

Andreas, ich habe deinen Code in mein bestehendes Formular eingebaut, aber er zeigt keine Auswirkung. Das Formular kann immer noch verschickt werden,
Vorname, Nachname und eMailadresse sollten aber Pflichfelder sein.

Anbei mal der code dazu, vielleicht kannst du mir die Krücken nehmen.

Code:
<head>

    <script type="text/javascript">
      function check(){
        for(var x=0; x<document.formular.length; x++){
          var elem = document.formular.elements[x];
          if((elem.name.substring(elem.name.length-2,elem.name.length)=='_r') && (elem.value=='')){
            alert('Ausfüllen alle Felder ausfüllen');
            elem.focus();
            return false;
          }
        }
        return true;
      }
    </script>

</head>

<body>

<FORM ACTION="http://members.vol.at/cgi-bin/formmail.asp" METHOD="POST">
  <br />
  <br />
  <form name="formular" onSubmit="return check()">
  <input type=hidden name="form-email-to" value="michael@vol.at">
  <input type=hidden name="form-email-subject" value="Newsletteranmeldung">
  <input type=hidden name="form-redirekt" value="newsletter_danke.html" />

  
  <input type=hidden name="form-email-template" value=" 
  Vorname: %feld1_r% 
  Nachname: %feld2_r% 
  Adresse: %feld3% 
  PLZ/Ort: %feld4%
  eMail-Adresse: %feld5_r%
  ">

  <span class="Stil2">Vorname</span> 
  <input type="text" name="feld1_r" size="40">

  <span class="Stil2">Nachname</span> 
  <input type="text" name="feld2_r" size="40">

  Adresse <input type="text" name="feld3" size="40"> 

  PLZ/Ort <input type="text" name="feld4" size="40"> 

  <span class="Stil2">eMail-Adresse</span> 
  <input type="text" name="feld5_r" size="40"> 


  <span class="Stil2">rotmarkierte</span> Felder sind Pflichtfelder 
  <input type="submit" name="submit" value="send">
</FORM>

</body>
</html>

Wäre klasse, wenn du mir da die Lösung zeigen könntest.

Danke und schöne Grüße
Mikkele
 
wenn du dir deinen quelltext ganz kurz genau anschaust, wirst du den fehler wahrscheinlich sofort selbst entdecken, oder es ist ein einfacher kleiner copy&paste-fehler ;)

aufjedenfall hast du in deinem formular gleich zweimal das form-Tag geöffnet, und einmal geschlossen.
Ich habe es mal für dich zusammengelegt :)

HTML:
<head>

    <script type="text/javascript">
      function check(){
        for(var x=0; x<document.formular.length; x++){
          var elem = document.formular.elements[x];
          if((elem.name.substring(elem.name.length-2,elem.name.length)=='_r') && (elem.value=='')){
            alert('Bitte alle Felder ausfüllen!');
            elem.focus();
            return false;
          }
        }
        return true;
      }
    </script>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body>

  <br />
  <br />
  <form name="formular" action="http://members.vol.at/cgi-bin/formmail.asp" onSubmit="return check()" method="post">
  <input type=hidden name="form-email-to" value="michael@vol.at">
  <input type=hidden name="form-email-subject" value="Newsletteranmeldung">
  <input type=hidden name="form-redirekt" value="newsletter_danke.html" />

  
  <input type=hidden name="form-email-template" value=" 
  Vorname: %feld1_r% 
  Nachname: %feld2_r% 
  Adresse: %feld3% 
  PLZ/Ort: %feld4%
  eMail-Adresse: %feld5_r%
  ">

  <span class="Stil2">Vorname</span> 
  <input type="text" name="feld1_r" size="40">

  <span class="Stil2">Nachname</span> 
  <input type="text" name="feld2_r" size="40">

  Adresse <input type="text" name="feld3" size="40"> 

  PLZ/Ort <input type="text" name="feld4" size="40"> 

  <span class="Stil2">eMail-Adresse</span> 
  <input type="text" name="feld5_r" size="40"> 


  <span class="Stil2">rotmarkierte</span> Felder sind Pflichtfelder 
  <input type="submit" name="submit" value="send">
</form>

</body>
</html>
 

Neue Beiträge

Zurück