Lottozahlen per Zufall in 7 Textfelder

Code:
<script tpye="text/javascript">

function in_array(a_mVal, a_aArray)
{
    for (sIndex in a_aArray) {
        if (a_aArray[sIndex] == a_mVal) {
            return true;
        }
    }

    return false;
}

function generateNumbers()
{
    aUsed = new Array();

    for (i=0; i<7; i++) {
        do {
            iRndNum = Math.round(Math.random() * 49) + 1;
        } while (in_array(iRndNum, aUsed));

        window.document.forms['LottoForm'].elements['num' + i].value = iRndNum;
        aUsed[aUsed.length] = iRndNum;
    }
}

function FocusField(a_iNum)
{
    window.document.forms['LottoForm'].elements['num' + a_iNum].focus();
}

function checkNumbers()
{
    aNums = new Array();

    for (i=0; i<7; i++) {
        iVal = parseInt(window.document.forms['LottoForm'].elements['num' + i].value);
        if ((iVal <= 0) || (iVal >= 50) || isNaN(iVal)) {
            FocusField(i);
            window.alert('Bitte nur Zahlen von 1 bis 49 eingeben');
            return false;
        } else if (in_array(iVal, aNums)) {
            FocusField(i);
            window.alert('Bitte keine doppelten Zahlen eingeben');
            return false;
        }
        aNums[aNums.length] = iVal;
    }
    return true;
}

</script>


<form name="LottoForm" action="lotto.php" method="post"
      onsubmit="return checkNumbers();">
    <input type="text" name="num0" style="width:30px;" />
    <input type="text" name="num1" style="width:30px;" />
    <input type="text" name="num2" style="width:30px;" />
    <input type="text" name="num3" style="width:30px;" />
    <input type="text" name="num4" style="width:30px;" />
    <input type="text" name="num5" style="width:30px;" />
    <input type="text" name="num6" style="width:30px;" />
    <br />
    <br />
    <input type="submit" value=" Lottozahlen eintragen " />
</form>

<script type="text/javascript">
generateNumbers();
</script>
Eine PN ist einfach eine Private Nachricht, so etwas wie eine E-Mail, nur auf
Tutorials.de.

Einen Link, um Dominik eine zu schreiben, findest du in seinem Profil.
 
Bisserl anders...

Hallo.

also das sollte schon so bleiben, dass man immer neue Tipps generieren kann, bloß dass ein ZWEITER Submit-Button da ist, der nochmal alles kontrolliert und mit einer offenen Action gekoppelt ist.

Habe übrigens Dominik kontaktiert, aber nich nix von ihm gehört!

Grüße,

Coyu
 
Code:
// Die Zeile hier:
<input type="submit" value=" Lottozahlen eintragen " />

// In die hier ändern:
<input type="submit" value=" Lottozahlen eintragen " />
<br />
<br />
<input type="button" onclick="generateNumbers();" value=" Lottozahlen erzeugen " />
Und der Dominik meldet sich schon noch, keine Angst ;)
 
Zum letzten Mal ich :-)

Also ich weiß nicht, von was Du den Submit-Button abhängig machst?!

Wäre es möglich, den Submit-Button einfach mit einer Funktion zu verknüpfen? So kann ich das nicht nutzen, weil mein Submit-Button ganz woanders liegt!

z.B.

<input name="submit" type="submit" class="button" value="SPEICHERN" onclick="checkNumbers();">
o.ä.

Grüße,

Coyu
 
Ok, also nochmal:
Code:
<script type="text/javascript">

function in_array(a_mVal, a_aArray)
{
    for (sIndex in a_aArray) {
        if (a_aArray[sIndex] == a_mVal) {
            return true;
        }
    }

    return false;
}

function generateNumbers()
{
    aUsed = new Array();

    for (i=0; i<7; i++) {
        do {
            iRndNum = Math.round(Math.random() * 49) + 1;
        } while (in_array(iRndNum, aUsed));

        window.document.forms['LottoForm'].elements['num' + i].value = iRndNum;
        aUsed[aUsed.length] = iRndNum;
    }
}

function FocusField(a_iNum)
{
    window.document.forms['LottoForm'].elements['num' + a_iNum].focus();
}

function checkNumbers()
{
    aNums = new Array();

    for (i=0; i<7; i++) {
        iVal = parseInt(window.document.forms['LottoForm'].elements['num' + i].value);
        if ((iVal <= 0) || (iVal >= 50) || isNaN(iVal)) {
            FocusField(i);
            window.alert('Bitte nur Zahlen von 1 bis 49 eingeben');
            return false;
        } else if (in_array(iVal, aNums)) {
            FocusField(i);
            window.alert('Bitte keine doppelten Zahlen eingeben');
            return false;
        }
        aNums[aNums.length] = iVal;
    }
    window.document.forms['LottoForm'].submit();
}

</script>


<form name="LottoForm" action="lotto.php" method="post">
    <input type="text" name="num0" style="width:30px;" />
    <input type="text" name="num1" style="width:30px;" />
    <input type="text" name="num2" style="width:30px;" />
    <input type="text" name="num3" style="width:30px;" />
    <input type="text" name="num4" style="width:30px;" />
    <input type="text" name="num5" style="width:30px;" />

    <input type="text" name="num6" style="width:30px;" />
</form>

<script type="text/javascript">
generateNumbers();
</script>


<!-- dieser Button kann an einer beliebigen Stelle im Dokument stehen -->
<input type="button" value=" Speichern " onclick="checkNumbers();">

<!-- dieser auch: -->
<input type="button" value=" Lottozahlen erzeugen "
       onclick="generateNumbers();">
Passt es so?
 
Zurück