Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Javascript: mehrere Textfelder prüfen ob es sich um eine Zahl handelt und diese zwischen 1 und 49 liegt
für ein eine onlie Lotterie Website (Uni-Projekt) muss der Kunde seine Lottozahlen selbst eingeben (in ein Textfeld!! Das soll NICHT geändert werden! Kein Feld vom typ number oder ähnliches gewollt!!!) und ich will mittels javascript prüfen, ob in diesem Feld wirklich eine Zahl eingetragen wurde und ob diese wirklich zwischen 1 und 49 liegt.
Hier mein Code:
Das Script wollte ich um weitere else if Zweige mit den jeweiligen boxen erweitern, aber leider klappt es schon bei box1 nicht...
Also generell: JavaScript ist nicht Java. Das sollte man als erstes lernen / wissen.
Dann sollte man sich etwas mit Datentypen beschäftigen. Text sind Strings ... und die kann man nicht so einfach mit Zahlen vergleichen. Wenn ein String eine Zahl beinhaltet, dann kann man den String parsen. Dann müsste man noch wissen, in was für einen Datentyp man den haben will und schon kann man da mit google suchen ...
JavaScript String parse int würde ich dann als Suchbegriffe vorschlagen - dann solltest Du finden, was du suchst.
Ich bin jetzt doch auf type number umgestiegen und habe jetzt das Problem, dass ich prüfen möchte, dass es acuh wirklich 6 UNTERSCHIEDLICH zahlen sind:
HTML:
<script>
function check() {
var a = document.getElementById("box1");
var b = document.getElementById("box2");
var c = document.getElementById("box3");
var d = document.getElementById("box4");
var e = document.getElementById("box5");
var f = document.getElementById("box6");
if(a != b != c != d != e != f){return true; alert("Ihr Tippschein wurde gespeichert!");}
else if {return false; alert("Sie müssen 6 unterschiedliche Zahlen wählen");}
</script>
</head>
<body>
<h1>6 aus 49</h1>
<br>
<form name="lottozahlen" th:action="@{/tippscheinspeichern}" th:object="${tippscheinform}" method="POST">
<table id="sechsaus49">
<caption>6 aus 49</caption>
<tbody>
<tr>
<td><input type="number" id="box1" th:field="*{firstNumber}" name="box1" min="1" max="49" required></td>
<td><input type="number" id="box2" th:field="*{secondNumber}" name="box2" min="1" max="49" required></td>
<td><input type="number" id="box3" th:field="*{thirdNumber}" name="box3" min="1" max="49" required></td>
<td><input type="number" id="box4" th:field="*{fourthNumber}" name="box4" min="1" max="49" required></td>
<td><input type="number" id="box5" th:field="*{fifthNumber}" name="box5" min="1" max="49" required></td>
<td><input type="number" id="box6" th:field="*{sixthNumber}" name="box6" min="1" max="49" required></td>
</tr>
</tbody>
</table>
<button type="submit" value="Tippschein speichern" onclick="check()">Tippschein speichern</button>
</form>
Leider greift die Funktion nicht......
Dass mit dem replacen werde ich noch einbauen
Du willst auch nicht die Elemente, sondern deren Werte. Außerdem bietet es sich bei 49 6 Eingaben an, nicht jedes input-Element einzeln zu behandeln...