Forenindex » Programmierung/Entwicklung » JavaScript » In Formular nur einmal gleichen Wert eingeben

In Formular nur einmal gleichen Wert eingeben

broesel
Beiträge gesamt: 409

27. Apr 2004, 11:09
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
Hallo

Ich möchte bei meinem Formular verhindern, daß der Anwender mehrmals die gleiche Zahl eingibt. Er soll in den vier Formularfeldern die Zahlen von eins bis vier jeweils nur ein mal verwenden dürfen. Die Reihenfolge spielt dabei keine Rolle. Andere Zahlen dürfen nicht verwendet werden.
Wie kann man das am geschicktesten lösen?

Gruß
___Jojo___

In Formular nur einmal gleichen Wert eingeben

oesi50
  
Beiträge gesamt: 2315

27. Apr 2004, 11:16
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
hi jojo,

das geht mit HTML. .-)

nimm doch einfach Radiobuttons oder Checkboxen, da hat der User eh keine andere Möglichkeit.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

In Formular nur einmal gleichen Wert eingeben

SabineP
Beiträge gesamt: 7586

27. Apr 2004, 12:30
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
Hallo Jojo,

wenn Radio-Buttons zu einer Gruppe zusammengefaßt werden, kann nur einer der Buttons gewählt werden:

<form action="dein_script" method="post">
1<input type="radio" name="antwort" value="1"><br>
2<input type="radio" name="antwort" value="2"><br>
3<input type="radio" name="antwort" value="3"><br>
4<input type="radio" name="antwort" value="4">
</form>

Gruß Sabine

In Formular nur einmal gleichen Wert eingeben

oesi50
  
Beiträge gesamt: 2315

27. Apr 2004, 12:37
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
da ich Dein Formular nicht kenne, kann ich Dir nur Pseudocode liefern.

lösche array
für feld aus(felder)
array[feld.wert]++
wenn array[feld.wert] > 1
dann
Nachricht "fehler"
ende wenn
ende für

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

(Dieser Beitrag wurde von oesi50 am 27. Apr 2004, 12:45 geändert)

In Formular nur einmal gleichen Wert eingeben

oesi50
  
Beiträge gesamt: 2315

27. Apr 2004, 13:35
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
das ist doch aber ASP, warum erledigst Du das nicht mit der Formularauswertung, die ja ohnehin erfolgt, gleich mit?

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

In Formular nur einmal gleichen Wert eingeben

Markus Walker
Beiträge gesamt: 494

27. Apr 2004, 21:04
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
Solche Plausibilitäts-Prüfungen würde ich eher beim Client, sprich Browser sehen, da es ja kaum Sinn macht, Daten hin und her zu schieben, um herauszufinden, dass sie nicht brauchbar sind.

Wenn also nicht eine Antwort 1 aud n möglich ist, wie oben mit Radios vorgeschlagen, nehme ich an, dass die Frage nach folgendem Muster gestellt wird: Bitte ordnen Sie die folgenden Schauspieler A, B, C, D nach Ihren Alter, indem Sie die Zahlen 1, 2, 3, 4 zuweisen... Jede Zahl darf nur einmal zugewiesen werden.

Das könnte dann mit JavaScript etwas so gelöst werden:

with (...form[0]) {
/* ... steht da, wenn weitere hirarchisch höhere Strukturen abgebildet werden müssen. Es wird hier angenommen, dass es sich um das form[0] handelt. */
switch (Frage_a.value) {
case Frage_b.value : window.alert("A=B ist nicht erlaubt");
break;
case Frage_c.value : window.alert("A=C ist nicht erlaubt");
break;
case Frage_d.value : window.alert("A=D ist nicht erlaubt");
break;
default: switch (Frage_b.value) {
case Frage_c.value : window.alert("B=C ist nicht erlaubt");
break;
case Frage_d.value : window.alert("B=D ist nicht erlaubt");
break;
default: if (Frage_c.value == Frage_d.value)
window.alert("C=D ist nicht erlaubt");
else
submit();
}
}
}

In Formular nur einmal gleichen Wert eingeben

broesel
Beiträge gesamt: 409

28. Apr 2004, 15:11
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
Hallo

Wie muß man das ganze jetzt erweitern wenn außer der Wiederholungsprüfung von Zahlen auch noch abgefragt wird, ob die Zahlen nur von 1 bis 4 gehen.

Gruß
___Jojo___

(Dieser Beitrag wurde von broesel am 28. Apr 2004, 16:44 geändert)

In Formular nur einmal gleichen Wert eingeben

oesi50
  
Beiträge gesamt: 2315

28. Apr 2004, 18:03
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
hallo Jojo,

das geht leicht mit regulären Ausdrücken.

re = /^[1234]$/;
if(!re.test(deineVariable) ){
alert('Fehler');
}

http://selfhtml.teamone.de/...t/objekte/regexp.htm
http://devedge.netscape.com/...eference/regexp.html

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

(Dieser Beitrag wurde von oesi50 am 28. Apr 2004, 19:44 geändert)

In Formular nur einmal gleichen Wert eingeben

broesel
Beiträge gesamt: 409

30. Apr 2004, 13:16
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
Hallo

Ich hab es jetzt so weit laufen:

function Zahlen(){
with (document.forms[0]) {
switch (Frage_a.value) {
case Frage_b.value :
window.alert("Bitte verwenden Sie jede Zahl nur einmal!");
return false;
case Frage_c.value :
window.alert("Bitte verwenden Sie jede Zahl nur einmal!");
return false;
case Frage_d.value :
window.alert("Bitte verwenden Sie jede Zahl nur einmal!");
return false;
default:
switch (Frage_b.value) {
case Frage_c.value :
window.alert("Bitte verwenden Sie jede Zahl nur einmal!");
return false;
case Frage_d.value :
window.alert("Bitte verwenden Sie jede Zahl nur einmal!");
return false;
default:
if (Frage_c.value == Frage_d.value) {
window.alert("Bitte verwenden Sie jede Zahl nur einmal!");
return false;
} else {
return true;
}
}
}
}
}


Was muß ich jetzt dem Script zufügen, damit der Anwender nur die Zahlen von 1 bis 4 verwenden kann.

Gruß
___Jojo___

In Formular nur einmal gleichen Wert eingeben

oesi50
  
Beiträge gesamt: 2315

30. Apr 2004, 17:36
Bewertung:

gelesen: 2434

Beitrag als Lesezeichen
hallo jojo,

meinst Du sowas?

http://vsrv.de/...les/formularp2.shtml

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)