hilfdirselbst.ch
Facebook Twitter gamper-media
"Funktioniert nicht" ist keine hinreichende Fehlerbeschreibung.
broesel
Beiträge: 405
27. Apr 2004, 11:09
Beitrag #1 von 10
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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___ Top
 
X
oesi50  A  S
Beiträge: 2315
27. Apr 2004, 11:16
Beitrag #2 von 10
Beitrag ID: #82135
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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)
als Antwort auf: [#82132] Top
 
SabineP  M 
Beiträge: 7586
27. Apr 2004, 12:30
Beitrag #3 von 10
Beitrag ID: #82171
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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
als Antwort auf: [#82132] Top
 
oesi50  A  S
Beiträge: 2315
27. Apr 2004, 12:37
Beitrag #4 von 10
Beitrag ID: #82174
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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)
als Antwort auf: [#82132]
(Dieser Beitrag wurde von oesi50 am 27. Apr 2004, 12:45 geändert)
Top
 
oesi50  A  S
Beiträge: 2315
27. Apr 2004, 13:35
Beitrag #5 von 10
Beitrag ID: #82189
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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)
als Antwort auf: [#82132] Top
 
Markus Walker  M 
Beiträge: 494
27. Apr 2004, 21:04
Beitrag #6 von 10
Beitrag ID: #82312
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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();
}
}
}
als Antwort auf: [#82132] Top
 
broesel
Beiträge: 405
28. Apr 2004, 15:11
Beitrag #7 von 10
Beitrag ID: #82447
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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___
als Antwort auf: [#82132]
(Dieser Beitrag wurde von broesel am 28. Apr 2004, 16:44 geändert)
Top
 
oesi50  A  S
Beiträge: 2315
28. Apr 2004, 18:03
Beitrag #8 von 10
Beitrag ID: #82493
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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)
als Antwort auf: [#82132]
(Dieser Beitrag wurde von oesi50 am 28. Apr 2004, 19:44 geändert)
Top
 
broesel
Beiträge: 405
30. Apr 2004, 13:16
Beitrag #9 von 10
Beitrag ID: #82936
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


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___
als Antwort auf: [#82132] Top
 
oesi50  A  S
Beiträge: 2315
30. Apr 2004, 17:36
Beitrag #10 von 10
Beitrag ID: #82985
Bewertung:
(1810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

In Formular nur einmal gleichen Wert eingeben


hallo jojo,

meinst Du sowas?

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

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#82132] Top
 
X