Avatar billede sonic666 Novice
04. juli 2005 - 12:06 Der er 9 kommentarer og
1 løsning

Valider tekstfelt ud fra valg af radioknapper

jeg har en formular på min hjemmeside, men en masse valideringsregler for diverse felter. Jeg mangler kun en ting.

Når radioknappen er under "Sind Sie mehrwertsteuerpflichtig" står til nein, må der ikke være udfyldt noget i tekstfeltet "Wenn ja, UID-Nr"

Hvis radioknappen står til ja, skal tekstfeltet "Wenn ja, UID-Nr" være udfyldt.

Resten at scriptet skal ikke ændres. Håber nogen kan hjælpe mig med denne lille tilpasning :-)
Avatar billede sonic666 Novice
04. juli 2005 - 12:07 #1
Her er hele formularen:


<html>
<head>
  <script language="JavaScript">
  function valider () {
  error = false;
  if (document.bestil.name.value.length == 0) {
  error = true;
  alert("Bitte tragen Sie Ihren Namen ein");
  }
   
  if (document.bestil.vorname.value.length == 0) {
  error = true;
  alert("Bitte tragen Sie Ihren Vornamen ein");
  }
 
  if (document.bestil.straße.value.length == 0) {
  error = true;
  alert("Bitte geben Sie die Straße an");
  }
     
  if (document.bestil.postnr.value.length == 0) {
  error = true;
  alert("Bitte geben Sie die Postleitzahl an");
  }
 
  if (document.bestil.ort.value.length == 0) {
  error = true;
  alert("Bitte geben Sie den Ort an");
  }
 
  if (document.bestil.land.value.length == 0) {
  error = true;
  alert("Bitte geben Sie das Land an");
  }
   
  if (document.bestil.telefon.value.length == 0) {
  error = true;
  alert("Bitte geben Sie Ihre Telefonnummer an");
  }
  if (error) return false;
  else
  {
  error = 0;
   
  placering=0;
  tekst=(document.forms[0].email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
  alert ("Bitte geben Sie Ihre E-Mail-Adresse an");
  error = 1;
  }
  else{
  tegn=tekst.indexOf(" ");
  if(tegn!=-1){
  alert ("Die E-Mail-Adresse darf keine Leerzeichen enthalten");
  error = 1;
  }
  else{
  if (tekst.indexOf("ä")!=-1 || tekst.indexOf("ö")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Ä")!=-1 || tekst.indexOf("Ö")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Å")!=-1 || tekst.indexOf("æ")!=-1 || tekst.indexOf("Æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
  alert ("Die E-mail-Adresse enthält ungültige Zeichen. Folgende Zeichen dürfen nicht enthalten sein: ä Ä ö Ö æ ø å Æ Ø Å , ;");
  error = 1;
  }
  else{
  if (placering<1 || tekst.length<=(placering+1)){
  alert ("E-Mail-Adresse ist ungültig. Bitte gebenSie Ihre korrekte E-Mail-Adresse an");
  error = 1;
  }
  }
  }
  }
  if(error == 0)
  document.forms[0].submit();   
  }
  }
  </script>
</head>

<body bgcolor="#F7FBEF">
  <table border="0" cellpadding="0" cellspacing="0">
     
  <form name="bestil" action ="http://www.dht.dk/webhotel/support/formmail/formmail.pl" method=POST onsubmit="return valider();">
  <INPUT TYPE="HIDDEN" NAME="recipient" VALUE="lohfert@lohfert.as">
  <INPUT TYPE="HIDDEN" NAME="redirect" VALUE ="http://lohfert.as/handbuch/main3.htm">   
 

  <tr valign="bottom" Height="20">     
    <td class="td_text2">Name:</td>
    <td class="td_text2">Vorname:</td>     
  </tr>
  <tr>     
    <td><INPUT TYPE ="TEXT" NAME ="name" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="vorname" size="37"></td>
  </tr>


  <tr valign="bottom" Height="20">
    <td class="td_text2">Firma:</td>
    <td class="td_text2">Abteilung:</td> 
  </tr>
  <tr>
    <td><INPUT TYPE ="TEXT" NAME ="firma" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="abteilung" size="37"></td>
  </tr>


  <tr valign="bottom" Height="20">
    <td class="td_text2">Straße:</td>
    <td class="td_text2">PLZ.:</td>
  </tr>
  <tr>
    <td><INPUT TYPE ="TEXT" NAME ="straße" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="postnr" size="7"></td>
  </tr>


  <tr valign="bottom" height="20">
    <td class="td_text2">Ort:</td>
    <td class="td_text2" colspan="2">Land:</td>
  </tr>
  <tr>   
    <td><INPUT TYPE ="TEXT" NAME ="ort" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="land" size="37"></td>
  </tr>

   
  <tr valign="bottom" height="20">
    <td class="td_text2">Telefon:</td>
    <td class="td_text2">E-Mail:</td>
  </tr>   
  <tr>     
    <td><INPUT TYPE ="TEXT" NAME ="telefon" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="email" size="37"></td>
  </tr>
 

  <tr height="25" valign="bottom">
    <td class="td_text2" colspan="2">

    <table border="0" cellpadding="0" cellspacing="0">
      <tr height="22" valign="bottom">
      <td class="td_text2" width="260" colspan="4">Sind Sie mehrwertsteuerpflichtig?</td>
      <td class="td_text2" width="255">Wenn ja, UID-Nr.:</td>
      </tr>
      <tr height="20">
      <td class="td_text2" width="15">nein:</td>
      <td class="td_text2" width="78"><INPUT TYPE ="RADIO" NAME ="mehrwertsteuerpflichtig" value="1" Checked></td>
      <td class="td_text2">ja:</td>
      <td class="td_text2" width="130"><INPUT TYPE ="RADIO" NAME ="mehrwertsteuerpflichtig" value="2"></td>
      <td class="td_text2" width="255"><INPUT TYPE ="TEXT" NAME ="UID-Nr" size="37"></td>
      </tr>
    </table>

    </td>
  </tr>

 
  <tr height="18" valign="bottom">
    <td class="td_text2" colspan="2">Antal</td>
  </tr>

  <tr height="25" valign="bottom">
    <td class="td_text2" colspan="2">

    <table border="0" cellpadding="0" cellspacing="0">
      <tr height="25" valign="bottom">
      <td class="td_text2" width="65"><INPUT TYPE ="TEXT" NAME ="antal" size="5" value="1"></td>
      <td class="td_text2" width="193"><input type="button" value="Bestellen" name="Onlinebestilling" onClick="valider();" style="width: 150+"></td>     
      </tr>
    </table>
    </td>
  </tr>
  </table>
</body>
Avatar billede ysubhi Nybegynder
04. juli 2005 - 13:24 #2
Jeg håber at du har tænkt dig at validere siden. Jeg har ikke rettet fejlene, men fået det du ønsker til at virke. Lov mig at validere den :)

<html>
<head>
  <script language="JavaScript">
  function valider () {
  error = false;
  if (document.bestil.name.value.length == 0) {
  error = true;
  alert("Bitte tragen Sie Ihren Namen ein");
  }
 
  if (document.bestil.vorname.value.length == 0) {
  error = true;
  alert("Bitte tragen Sie Ihren Vornamen ein");
  }

  if (document.bestil.straße.value.length == 0) {
  error = true;
  alert("Bitte geben Sie die Straße an");
  }
   
  if (document.bestil.postnr.value.length == 0) {
  error = true;
  alert("Bitte geben Sie die Postleitzahl an");
  }

  if (document.bestil.ort.value.length == 0) {
  error = true;
  alert("Bitte geben Sie den Ort an");
  }

  if (document.bestil.land.value.length == 0) {
  error = true;
  alert("Bitte geben Sie das Land an");
  }
 
  if (document.bestil.telefon.value.length == 0) {
  error = true;
  alert("Bitte geben Sie Ihre Telefonnummer an");
  }
  if (error) return false;
  else
  {
  error = 0;
 
  placering=0;
  tekst=(document.forms[0].email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
  alert ("Bitte geben Sie Ihre E-Mail-Adresse an");
  error = 1;
  }
  else{
  tegn=tekst.indexOf(" ");
  if(tegn!=-1){
  alert ("Die E-Mail-Adresse darf keine Leerzeichen enthalten");
  error = 1;
  }
  else{
  if (tekst.indexOf("ä")!=-1 || tekst.indexOf("ö")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Ä")!=-1 || tekst.indexOf("Ö")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Å")!=-1 || tekst.indexOf("æ")!=-1 || tekst.indexOf("Æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
  alert ("Die E-mail-Adresse enthält ungültige Zeichen. Folgende Zeichen dürfen nicht enthalten sein: ä Ä ö Ö æ ø å Æ Ø Å , ;");
  error = 1;
  }
  else{
  if (placering<1 || tekst.length<=(placering+1)){
  alert ("E-Mail-Adresse ist ungültig. Bitte gebenSie Ihre korrekte E-Mail-Adresse an");
  error = 1;
  }
  }
  }
  }
  if(error == 0)
  document.forms[0].submit(); 
  }
  }
  function checkradio(hjort,hest) { 
  if (hjort.checked == 1){
  hest.value = '';
  }
  }
  </script>
</head>

<body bgcolor="#F7FBEF">

  <table border="0" cellpadding="0" cellspacing="0">
   
  <form name="bestil" action ="http://www.dht.dk/webhotel/support/formmail/formmail.pl" method=POST onsubmit="return valider();">
  <INPUT TYPE="HIDDEN" NAME="recipient" VALUE="lohfert@lohfert.as">
  <INPUT TYPE="HIDDEN" NAME="redirect" VALUE ="http://lohfert.as/handbuch/main3.htm"> 


  <tr valign="bottom" Height="20">   
    <td class="td_text2">Name:</td>
    <td class="td_text2">Vorname:</td>   
  </tr>
  <tr>   
    <td><INPUT TYPE ="TEXT" NAME ="name" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="vorname" size="37"></td>
  </tr>


  <tr valign="bottom" Height="20">
    <td class="td_text2">Firma:</td>
    <td class="td_text2">Abteilung:</td>
  </tr>
  <tr>
    <td><INPUT TYPE ="TEXT" NAME ="firma" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="abteilung" size="37"></td>
  </tr>


  <tr valign="bottom" Height="20">
    <td class="td_text2">Straße:</td>
    <td class="td_text2">PLZ.:</td>
  </tr>
  <tr>
    <td><INPUT TYPE ="TEXT" NAME ="straße" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="postnr" size="7"></td>
  </tr>


  <tr valign="bottom" height="20">
    <td class="td_text2">Ort:</td>
    <td class="td_text2" colspan="2">Land:</td>
  </tr>
  <tr> 
    <td><INPUT TYPE ="TEXT" NAME ="ort" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="land" size="37"></td>
  </tr>

 
  <tr valign="bottom" height="20">
    <td class="td_text2">Telefon:</td>
    <td class="td_text2">E-Mail:</td>
  </tr> 
  <tr>   
    <td><INPUT TYPE ="TEXT" NAME ="telefon" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="email" size="37"></td>
  </tr>


  <tr height="25" valign="bottom">
    <td class="td_text2" colspan="2">

    <table border="0" cellpadding="0" cellspacing="0">
      <tr height="22" valign="bottom">
      <td class="td_text2" width="260" colspan="4">Sind Sie mehrwertsteuerpflichtig?</td>
      <td class="td_text2" width="255">Wenn ja, UID-Nr.:</td>
      </tr>
      <tr height="20">
      <td class="td_text2" width="15">nein:</td>
      <td class="td_text2" width="78"><INPUT TYPE ="RADIO" NAME ="mehrwertsteuerpflichtig" value="1" id="radionej" Checked onchange="checkradio(this,radiotekst);"></td>
      <td class="td_text2">ja:</td>
      <td class="td_text2" width="130"><INPUT TYPE ="RADIO" NAME ="mehrwertsteuerpflichtig" value="2" id="radioja" onchange="checkradio(radionej,radiotekst);"></td>
      <td class="td_text2" width="255"><INPUT TYPE ="TEXT" NAME ="UID-Nr" size="37" id="radiotekst" onchange="checkradio(radionej,this);"></td>
      </tr>
    </table>

    </td>
  </tr>


  <tr height="18" valign="bottom">
    <td class="td_text2" colspan="2">Antal</td>
  </tr>

  <tr height="25" valign="bottom">
    <td class="td_text2" colspan="2">

    <table border="0" cellpadding="0" cellspacing="0">
      <tr height="25" valign="bottom">
      <td class="td_text2" width="65"><INPUT TYPE ="TEXT" NAME ="antal" size="5" value="1"></td>
      <td class="td_text2" width="193"><input type="button" value="Bestellen" name="Onlinebestilling" onClick="valider();" style="width: 150+"></td>   
      </tr>
    </table>
    </td>
  </tr>
  </table>
</body>
Avatar billede roenving Novice
04. juli 2005 - 14:16 #3
-- og det hører da med, at de nyeste standarder for internet-domæner tillader landespecifikke special-bogstaver, samt at der efter den nyeste smtp-rfc (2821) må stå hvadsomhelst foran @-tegnet !-)

-- altså kunne følgende adresse være ganske lovlig: "Kürz&Gut"@pförder.de !o]
Avatar billede roenving Novice
04. juli 2005 - 14:21 #4
-- og den minimale forudsætning for at det er et rigtigt html-dokument er at der er en doctype, f.eks.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-- samt at head-sektionen indeholder et title-tag og at dokumentet afsluttes med en lukning af html-tagget !-)

-- og så virker det underligt, at man kan risikere op til 7 alerts, hvis man ikke får udfyldt nogetsomhelst, men kommer til at trykke på send-knappen ...
Avatar billede sonic666 Novice
06. juli 2005 - 09:44 #5
Hmm... Doctype. Kan du fortælle lidt om det? Hvad står det for, hvad gør den, hvad er det korrekte for at skrive?

Var ikke klar over at det var nødvendigt at have et title-tag :-( Lukningen at html tagget har jeg med. Den er bare smuttet da jeg klippede koden ind på eksperten. ;-)

Ja jeg er eneig med dig i at det ikke er optimalt at få så mange fejl-meddelelser. Men man må jo tage hvad man kan få når man ikke selv kan skrive koden. Har du en bedre løsning?
Avatar billede sonic666 Novice
06. juli 2005 - 10:05 #6
Har lige afprøvet dit bud på et script "ysubhi". Kan godt se at du har sat noget checkradio ind, men der sker stadig ikke noget hvis man vælger "ja" og ikke udfylder "UID-Nr". Sorry
Avatar billede ysubhi Nybegynder
06. juli 2005 - 13:53 #7
Nå ja. Det lagde jeg ikke mærke til. Nu er det også på.

<html>
<head>
  <script language="JavaScript">
  function valider () {
  error = false;
  if (document.bestil.name.value.length == 0) {
  error = true;
  alert("Bitte tragen Sie Ihren Namen ein");
  }

  if (document.bestil.vorname.value.length == 0) {
  error = true;
  alert("Bitte tragen Sie Ihren Vornamen ein");
  }

  if (document.bestil.radioja.checked == 1 & document.bestil.radiotekst.value == '') {
  error = true;
  alert("Bitte scheiben noget dänish hier (?)"); 
  }

  if (document.bestil.straße.value.length == 0) {
  error = true;
  alert("Bitte geben Sie die Straße an");
  }
 
  if (document.bestil.postnr.value.length == 0) {
  error = true;
  alert("Bitte geben Sie die Postleitzahl an");
  }

  if (document.bestil.ort.value.length == 0) {
  error = true;
  alert("Bitte geben Sie den Ort an");
  }

  if (document.bestil.land.value.length == 0) {
  error = true;
  alert("Bitte geben Sie das Land an");
  }

  if (document.bestil.telefon.value.length == 0) {
  error = true;
  alert("Bitte geben Sie Ihre Telefonnummer an");
  }
  if (error) return false;
  else
  {
  error = 0;

  placering=0;
  tekst=(document.forms[0].email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
  alert ("Bitte geben Sie Ihre E-Mail-Adresse an");
  error = 1;
  }
  else{
  tegn=tekst.indexOf(" ");
  if(tegn!=-1){
  alert ("Die E-Mail-Adresse darf keine Leerzeichen enthalten");
  error = 1;
  }
  else{
  if (tekst.indexOf("ä")!=-1 || tekst.indexOf("ö")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Ä")!=-1 || tekst.indexOf("Ö")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Å")!=-1 || tekst.indexOf("æ")!=-1 || tekst.indexOf("Æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
  alert ("Die E-mail-Adresse enthält ungültige Zeichen. Folgende Zeichen dürfen nicht enthalten sein: ä Ä ö Ö æ ø å Æ Ø Å , ;");
  error = 1;
  }
  else{
  if (placering<1 || tekst.length<=(placering+1)){
  alert ("E-Mail-Adresse ist ungültig. Bitte gebenSie Ihre korrekte E-Mail-Adresse an");
  error = 1;
  }
  }
  }
  }
  if(error == 0)
  document.forms[0].submit();
  }
  }
  function checkradio(hjort,hest) {
  if (hjort.checked == 1){
  hest.value = '';
  }
  }
  </script>
</head>

<body bgcolor="#F7FBEF">

  <table border="0" cellpadding="0" cellspacing="0">
 
  <form name="bestil" action ="http://www.dht.dk/webhotel/support/formmail/formmail.pl" method=POST onsubmit="return valider();">
  <INPUT TYPE="HIDDEN" NAME="recipient" VALUE="lohfert@lohfert.as">
  <INPUT TYPE="HIDDEN" NAME="redirect" VALUE ="http://lohfert.as/handbuch/main3.htm">


  <tr valign="bottom" Height="20"> 
    <td class="td_text2">Name:</td>
    <td class="td_text2">Vorname:</td> 
  </tr>
  <tr> 
    <td><INPUT TYPE ="TEXT" NAME ="name" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="vorname" size="37"></td>
  </tr>


  <tr valign="bottom" Height="20">
    <td class="td_text2">Firma:</td>
    <td class="td_text2">Abteilung:</td>
  </tr>
  <tr>
    <td><INPUT TYPE ="TEXT" NAME ="firma" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="abteilung" size="37"></td>
  </tr>


  <tr valign="bottom" Height="20">
    <td class="td_text2">Straße:</td>
    <td class="td_text2">PLZ.:</td>
  </tr>
  <tr>
    <td><INPUT TYPE ="TEXT" NAME ="straße" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="postnr" size="7"></td>
  </tr>


  <tr valign="bottom" height="20">
    <td class="td_text2">Ort:</td>
    <td class="td_text2" colspan="2">Land:</td>
  </tr>
  <tr>
    <td><INPUT TYPE ="TEXT" NAME ="ort" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="land" size="37"></td>
  </tr>


  <tr valign="bottom" height="20">
    <td class="td_text2">Telefon:</td>
    <td class="td_text2">E-Mail:</td>
  </tr>
  <tr> 
    <td><INPUT TYPE ="TEXT" NAME ="telefon" size="37"></td>
    <td><INPUT TYPE ="TEXT" NAME ="email" size="37"></td>
  </tr>


  <tr height="25" valign="bottom">
    <td class="td_text2" colspan="2">

    <table border="0" cellpadding="0" cellspacing="0">
      <tr height="22" valign="bottom">
      <td class="td_text2" width="260" colspan="4">Sind Sie mehrwertsteuerpflichtig?</td>
      <td class="td_text2" width="255">Wenn ja, UID-Nr.:</td>
      </tr>
      <tr height="20">
      <td class="td_text2" width="15">nein:</td>
      <td class="td_text2" width="78"><INPUT TYPE ="RADIO" NAME ="mehrwertsteuerpflichtig" value="1" id="radionej" Checked onchange="checkradio(this,radiotekst);"></td>
      <td class="td_text2">ja:</td>
      <td class="td_text2" width="130"><INPUT TYPE ="RADIO" NAME ="mehrwertsteuerpflichtig" value="2" id="radioja" onchange="checkradio(radionej,radiotekst);"></td>
      <td class="td_text2" width="255"><INPUT TYPE ="TEXT" NAME ="UID-Nr" size="37" id="radiotekst" onchange="checkradio(radionej,this);"></td>
      </tr>
    </table>

    </td>
  </tr>


  <tr height="18" valign="bottom">
    <td class="td_text2" colspan="2">Antal</td>
  </tr>

  <tr height="25" valign="bottom">
    <td class="td_text2" colspan="2">

    <table border="0" cellpadding="0" cellspacing="0">
      <tr height="25" valign="bottom">
      <td class="td_text2" width="65"><INPUT TYPE ="TEXT" NAME ="antal" size="5" value="1"></td>
      <td class="td_text2" width="193"><input type="button" value="Bestellen" name="Onlinebestilling" onClick="valider();" style="width: 150+"></td> 
      </tr>
    </table>
    </td>
  </tr>
  </table>
</body>
Avatar billede sonic666 Novice
06. juli 2005 - 14:09 #8
Tusind Tak :-)
Hvad mener du med jeg skal validere den?
Avatar billede ysubhi Nybegynder
06. juli 2005 - 14:26 #9
Siden er fyldt med fejl. Vælg doctype, og følg dens anvisninger, så du får en ren kode. Det sparer browseren for en hel del, og giver et mere professionelt billede. :)

Links til info og eftertanke:
http://www.html.dk/artikler/00031/ - W3 standarder, validering
http://www.html.dk/artikler/00036/ - doctype
http://www.netsteder.dk/raad/standard/index.html - It- og Telestyrelsen, hvorfor standarder er vigtige
Avatar billede sonic666 Novice
06. juli 2005 - 15:37 #10
Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester