Michael Sedderz: Kann es sein das mein Script nicht mit dem IE 5 nicht geht?

Hi, Folgendes Problem: Ich habe ein Formular gemacht ein paar Sachen eingebaut die auch funktionieren und nun habe ich zusätzlich noch eine Eingabe Überprüfung eingebaut. Naja bei mir aufm Rechner funktioniert das ja auch alles (mit dem IE 6) aber sobald ich es mit einem Rechner teste der dem Firmen Standard entspricht (also IE 5) macht er folgendes. Er erkennt zwar wenn man vergessen hat etwas in einem Feld einzutragen bzw. auszuwählen. Er bringt dann auch das Popup Fenster mit der Aufforderung etwas in das entsprechende Feld einzutragen. Doch wenn man dieses dann mit einem Mausklick auf den OK Button  wegklicken will sendet er die email trotzdem (nur beim IE 5)!!

Weiß jemand warum??

Achja hier noch der Quelltext falls ihn jemand braucht um aus meinem Geschwafel schlau zu werden :)

<html> <head> <title>Support Request Form</title> <script type="text/javascript"> <!-- function clear() {  document.support.reset(); }

function uebermitteln() {  document.support.submit();  clear(); }

function chkformular() {  if(document.support.Site.value == "...")   {     alert("Please choose your Site!");     document.support.Site.focus();

}

if(document.support.LBC.value == "...")   {     alert("Please choose the LBC you used to install!");     document.support.LBC.focus();

}

if(document.support.PC.value == "...")   {     alert("Please choose the PC you used to install!");     document.support.PC.focus();

}

if(document.support.Bootdisk.value == "")   {     alert("Please type in the Version of your LBC CONNECT DISK!");     document.support.Bootdisk.focus();

}

if(document.support.Operating_System.value == "...")   {     alert("Please choose the Operating System you have tried to install!");     document.support.Operating_System.focus();

}

uebermitteln(); } //--> </script> </head> <body>

<p><h1 align="center">Support Request Form</h1></p>

<form name="support" action="mailto:lala@lent.com?subject=Support Request" method="post" enctype="text/plain"> <table border="0" cellpadding="3" cellspacing="0">   <td align="right" valign="top">Choose your site:<font color="#FF0000"></font></td>   <td>    <select name="Site" class="Auswahl" size="1">     <option value="">...</option>     <option value="Amstelween">Amstelween - Netherlands</option>     <option value="Barcelona">Barcelona - Iberia</option>     <option value="Böblingen">Böblingen - Germany</option>     <option value="Helsinki">Helsinki - Finland</option>     <option value="Ipswich">Ipswich - England</option>     <option value="Madrid">Madrid - Iberia</option>     <option value="Manchester">Manchester - England</option>     <option value="Milano">Milano (Lario) - Italy</option>     <option value="Milano">Milano (Tema) - Italy</option>     <option value="Moscow">Moscow - Russia</option>     <option value="Paris">Paris - France</option>     <option value="SouthfQueensferry">South Queensferry - Scotland</option>     <option value="Stockholm">Stockholm - Sweden</option>     <option value="TelaViv">Tel a Viv - Israel</option>     <option value="Vienna">Vienna - Austria</option>     <option value="Warsaw">Warsaw - Poland</option>     <option value="Waldbronn">Waldbronn - Germany</option>     <option value="Winnersh">Winnersh - England</option>     </select>   </td>  </tr><tr>   <td align="right" valign="top">Which LBC do you use to install:<font color="#FF0000"></font></td>   <td>    <select name="LBC" class="Auswahl" size="1">     <option value="">...</option>     <option value="MBCCD">MBCCD - Any other site</option>     <option value="SCINSTAL">SCINSTAL - MBC Server Böblingen</option>     <option value="ATRLBC01">ATRLBC01 - LBC Server Böblingen</option>     <option value="WADLBC01">WADLBC01 - LBC Server Waldbronn</option>     <option value="MILLBC01">MILLBC01 - LBC Server Milano</option>     <option value="TORLBC01">TORLBC01 - LBC Server Turin</option>     <option value="ROMLBC01">ROMLBC01 - LBC Server Rom</option>     <option value="NULIIG01">NULIIG01 - LBC Server Les Ulis</option>     <option value="BARLBC02">BARLBC02 - LBC Server Barcelona</option>     <option value="NMADIX01">NMADIX01 - LBC Server Madrid</option>     <option value="NTGVA04">NTGVA04 - LBC Server Geneva</option>     <option value="BRULBC01">BRULBC01 - LBC Server Brussels</option>     <option value="AMSLBC01">AMSLBC01 - LBC Server Amstelween</option>     <option value="WINLBC01">WINLBC01 - LBC Server Winnersh</option>     <option value="NSQFMBC1">NSQFMBC1 - LBC Server South Queensferry</option>     <option value="IPSLBC01">IPSLBC01 - LBC Server Ipswich</option>     <option value="STOLBC01">STOLBC01 - LBC Server Stockholm</option>     </select>   </td>  </tr><tr>   <td align="right" valign="top">Which PC:<font color="#FF0000"></font></td>   <td>    <select name="PC" class="Auswahl" size="1">     <option value="">...</option>     <option value="XU800">Kayak XU 800</option>     <option value="XA7Serie5">Kayak XA7 Serie 5</option>     <option value="Xm600">Kayak XM600</option>     <option value="XU7">Kayak XU7</option>     <option value="XAs">Kayak XAs</option>     <option value="XA6">Kayak XA6</option>     <option value="VL600">Vectra VL600</option>     <option value="VL400">Vectra VL400</option>     <option value="VL420">Vectra VL420</option>     <option value="VL800">Vectra VL800</option>     <option value="OB800">OmniBook 800</option>     <option value="OB3000">OmniBook 3000</option>     <option value="OB4100">OmniBook 4100</option>     <option value="OB4150">OmniBook 4150</option>     <option value="OB4150B">OmniBook 4150B</option>     <option value="OB900">OmniBook 900</option>     <option value="OB6000">OmniBook 6000</option>     <option value="OB6100">OmniBook 6100</option>     </select>   </td>  </tr><tr>   <td align="right">Version of LBC CONNECT DISK:<font color="#FF0000"></font></td>   <td><input name="Bootdisk"&nbsp type="text" class="Feld" size="30" maxlength="30"></td>  </tr><tr>   <td align="right">Name of the Parafile:</td>   <td><input name="Parafile" type="text" class="Feld" size="30" maxlength="30"></td>  </tr><tr>   <td align="right" valign="top">Operating System:<font color="#FF0000"></font></td>   <td>    <select name="Operating_System" class="Auswahl" size="1">     <option value="">...</option>     <option value="WinNT">Windows NT4.0 Workstation</option>     <option value="Win2k">Windows 2000</option>     </select>   </td>  </tr><tr>   <td align="right">Error Code:</td>   <td><input name="ErrorCode" type="text" class="Feld" size="30" maxlength="30"></td>  </tr><tr>   <td align="right" valign="top">Some Problems to choose:<font color="#FF0000"></font></td>   <td>    <select name="ChooseProblems" class="Auswahl" size="1">     <option value="">...</option>     <option value="FirstBoot">Stopped on the <b>first</b> boot from LBC CONNECT DISK</option>     <option value="SecondBoot">Stopped on the second boot from LBC CONNECT DISK</option>     <option value="FileCopyProcess">Stopped on the file copy process</option>     <option value="TextModeSetup">Stopped on the text mode Setup from the Operating System</option>     <option value="GUImodeSetup">Stopped on the GUI mode Setup from the Operating System</option>     <option value="AdminLogin">Stopped during Administrator is logged in (i.e. Join on Domain)</option>     <option value="UserLogin">Stopped during User is logged in (i.e. AIM)</option>     </select>   </td>  </tr><tr>   <td align="right" valign="top">Problem Description:</td>   <td><textarea name="Description" class="Bereich" rows="10" cols="50"></textarea></td>  </tr><tr>   <td align="right"></td>   <td><font color="#FF0000">Please fill out all the fields marked with a *</font></td>  </tr><tr>   <td align="right">Support Form:</td>   <td>    <a href="javascript:chkformular();">Send</a>        <a href="javascript:clear();">Delete all content</a>   </td>  </tr> </table> </form>

</body> </html>

Gruss Michael

  1. Hi!

    Naja bei mir aufm Rechner funktioniert das ja auch alles (mit dem IE 6) aber sobald ich es mit einem Rechner teste der dem Firmen Standard entspricht (also IE 5) macht er folgendes.

    Verstehe nicht, wieso das mit IE6 funktionieren soll. Du rufst uebermitteln() doch in *jedem* Fall auf!

    Na wie auch immer, Deine Herangehensweise ist voellig verkehrt. Formularueberpruefung mit JS macht man so:

    function CheckForm() {
        /* zum einfachen Zugriff Formularreferenz in f speichern */
        var f = window.document.forms["support"];

    /* Reihe von Tests */
        /* sobald einer fehlschlaegt, false zurueckgeben! */
        /* z.B. */

    if (f.Bootdisk.value == "") {
            alert("Please type in the Version of your LBC CONNECT DISK!");
            document.support.Bootdisk.focus();
            return false;   //  <-- WICHTIG!
        }

    return true;        //  <-- WICHTIG!
    }

    <form name="support" action="mailto:lala@lent.com?subject=Support Request" method="post" enctype="text/plain" onSubmit="return CheckForm();">

    ...

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

    Du siehst, dass die Aktion des ganz normalen Submit-Buttons durch den onSubmit-Handler abgefangen wird, und der darueber entscheidet, ob nun wirklich abgeschickt wird oder nicht.

    Ich hoffe, dass Du Dir darueber im klaren bist, dass action="mailto:..."  NUR IN AUSNAHMEFAELLEN funktioniert, meistens also nicht tut, was Du willst. Vgl. http://www.praast.de/ffq/mailto.htm. Dir sei also ein serverseitiges Script, welches die Mail zuverlaessig verschickt, DRINGEND empfohlen. Falls Du selber keines installieren kannst, schau mal auf http://aktuell.de.selfhtml.org/links/services.htm#diverse_german.

    Zuletzt zeige ich Dir noch, wie man den aktuellen Wert eines <select> richtig abfragt. Die von Dir verwendete Methode ist naemlich kaputt, d.h. sie funktioniert nur, wenn der Browser Dir gnaedig gestimmt ist.

    if (f.Site.options[f.Site.selectedIndex].value == "...") {
            alert("Please choose your Site!");
            document.support.Site.focus();
            return false;
        }

    wobei f so belegt sein muss, wie oben gezeigt.

    HTH && So long
    So long

    --