Wenn es ganz etwas anderes ist, dann mach besser einen neuen Thread auf.
Beiträge von Sempervivum
-
-
Gern, in meinem Posting #5 sind ja schon script-Tags drum herum. Das an das Ende des body, vor das schließende </body> stellen. Das pattern in dem <input> brauchst Du dann nicht.
-
Ich bin bei meinem Vorschlag von dem aus gegangen, was unter deinem Link zu sehen war. D. h. das Eingabefeld muss die ID "inputField" und das Pattern haben.
Das CSS dann in style-Tags und in den Head-Bereich stellen:
Code<style> input#inputField { outline: none; } input#inputField:invalid { border: 2px solid red; } </style>Siehe auch hier:
CSS/Tutorials/Einstieg/Stylesheets einbinden – SELFHTML-Wiki
-
Möglicher Weise hilft es schon weiter, wenn Du mit der Pseudoklasse :invalid das Eingabefeld rot markierst:
Oder, wenn Du den Benutzer ganz an einer ungültigen Eingabe hindern willst, mit Javascript, dann sind die Bedingungen ohnehin besser lesbar und klarer:
Code
Alles anzeigen<script> document.getElementById('inputField').addEventListener('input', event => { const input = event.target, val = input.value; // Prüfen ob eine gültige Eingabe vorliegt: if (val == '' || parseInt(val) >= 1 && parseInt(val) <= 157 || val == 'M') { // Die Eingabe ist gültig, wir speichern den Wert: input.dataset.validValue = val; } else { // Die Eingabe ist ungültig, wir setzen die Eingabe // auf den letzten gültigen Wert zurück: input.value = input.dataset.validValue; } }); </script> -
Warum bestehst Du denn darauf, das mit Bootstrap zu machen? An den ausbleibenden Antworten erkennst Du ja, dass niemand Interesse daran hat.
Und bei deiner vorigen Frage hast Du gesehen, dass die Aufgabe mit wenigen Zeilen CSS zu lösen war, ohne eine Inflation an Container wie man es von Bootstrap kennt.
Bootstrap war vor 10, 15 Jahren eine gute Sache aber heute veraltet und überflüssig.
Siehe auch hier:
-
-
Kernproblem: Um fest zu stellen ob 3x falsch geraten wurde, musst Du den Schleifenzähler count abfragen, nicht den String.
Ich bin der Meinung, dass die Arbeit mit break und continue nur Verwirrung stiftet, klarer wird es, wenn man verschachtelte if-Abfragen verwendet:
Code
Alles anzeigen<script> function schreibwas() { var count = 1; var antwort1 = "Laika"; var antwort2 = "Juri Gagarin"; // antwort3 ist keine Antwort sondern eine Meldung an den Benutzer // var antwort3 = "3x falsch"; do { var eingabe = prompt(count + ". Versuch. Wie hieß der erste Erdbewohner im All:", ""); if (eingabe == antwort2) { alert("Fast richtig, Sie dürfen noch einmal raten"); // Der Benutzer darf noch ein Mal raten } else if (eingabe == antwort1) { alert("Das ist richtig"); // Richtige Antwort, durch die Bedingung am Schleifenende wird // die Schleife verlassen werden } else // Wenn wir an dieser Stelle ankommen, wurde falsch geraten. // Prüfen, ob es schon der letzte Versuch war: if (count >= 3) { document.getElementById("ergebnis").innerHTML = "3x falsch"; } else { document.getElementById("ergebnis").innerHTML = "Falsch, Sie dürfen noch einmal raten"; } count++; } while (eingabe != antwort1 && count <= 3) } </script>(ungetestet)
-
-
Da ist eine schließende geschweifte Klammer fehl am Platze:
Codedo { var eingabe = prompt(count + ". Versuch. Wie hieß der erste Erdbewohner im All:", ""); } // Die schließende Klammer ist hier fehl am Platze if (eingabe == antwort2) {Lösche ich sie ist der Code zumindest frei von Syntaxfehlern. Rückt man den Code sinnvoll ein, sieht man schnell, dass da etwas nicht stimmt.
Benutze bitte Code-Tags wenn Du Code postest, das </> in der Werkzeugleist oben.
-
Poste bitte auch mal das Javascript, was Du im Moment hast.
-
Ja, in meinem Posting #2 hatte ich zwei Alternativen beschrieben, d. h. Du hättest nur eine umzusetzen brauchen.
Außerdem: Du zeigst ja dem Benutzer an, der wievielte Versuch es ist. Dazu musst Du beim Zählen mit 1 beginnen, also let count = 1;.
-
Wenn ich mir deinen anderen Thread ansehe, sehe ich zwei Möglichkeiten, das zu berücksichtigen:
1. Bei der Abfrage innerhalb der do-Schleife die Schleife verlassen:
Codedo { if (count <= 3) { // Hier fehlte das "if" var eingabe = prompt(count + ". Versuch. Wie hieß der erste Erdbewohner im All:", ""); } else { break; }2. Den Counter in der while-Bedingung berücksichtigen:
-
Hallo Patrick, hast Du es inzwischen zum Laufen bekommen?
-
Am Anfang des do fehlte ein if:
Codedo { if (count <= 3) { // Hier fehlte das "if" var eingabe = prompt(count + ". Versuch. Wie hieß der erste Erdbewohner im All:", ""); }Und die schließende geschweifte Klammer ganz am Ende musst Du vor das while verschieben:
Code} while (eingabe != antwort1) { document.getElementById("ergebnis").innerHTML = "3 × falsch"; } // } die schließende Klammer gehört vor das "while"Dann sind zumindest schon Mal die Syntaxfehler raus und die Frage wird angezeigt.
-
Hast Du denn das Problem lösen können?
-
Hallo Patrick und willkommen im Forum!
Wirf mal einen Blick in die Console, dort müssten Fehlermeldungen zu sehen sein, die dir weiter helfen.
Arbeiten mit dem Seiteninspektor – SELFHTML-Wiki
Dort auf das Tag "Console" gehen.
-
Du hast zwar nicht danach gefragt aber wenn deine neue SSD da ist, wirst Du irgend wie Windows wieder drauf bringen müssen. Wenn Du viel installiert und konfiguriert hast, kann das aufwändig und Zeit raubend werden. Ich habe die gleiche Aktion auch schon Mal durch gezogen und dabei mit Clonezilla ein Image angelegt und auf die neue SSD wieder eingespielt. Wenn sich die Größen unterscheiden erfordert das zusätzliche Maßnahmen, ist aber kein Problem.
(Bei mir war es kein Speicherplatzmangel sondern die alte war kaputt gegangen.)
-
Das hat sich jetzt überkreuzt, also doch zwei verschiedene Festplatten, nicht wahr?
-
PS: Wenn ich mir deine Beschreibung genau durchlesen, handelt es sich nicht um zwei Festplatten, sondern um eine mit zwei Partitionen? Dann sollte es möglich sein, zuerst die Daten-Partition zu verkleinern um Platz zu schaffen und dann die System-Partition zu vergrößern.
-
Warum das, weil Du keine Lösung findest, um mehr Platz zu schaffen? Trifft wohl wahrscheinlich bei dir nicht zu aber falls Du Dateien unter "Downloads", "Dokumente", Bilder etc. liegen hast, die kannst Du problemlos auf deine DATA-Festplatte verschieben.