• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

textbox deaktivieren...

Metallica

Lounge-Member
Hi Leute!

Ich bastle grad an 'nem formular, dass wie folgt aussieht:

radiobuttonA--------radiobuttonB
textboxA1------------textboxB1
textboxA2------------textboxB2
textboxA3------------textboxB3

=> wenn der user auf radiobuttonA klickt, dann soll er nur in die texboxen A1-A3 was eingeben können und die textboxen B1-B3 sollen deaktiviert sein.

=> wenn der user auf radiobuttonB klickt, dann soll das ganze natürlich umgekehrt sein.

Es funktioniert schon soweit, dass ich über JS weiß, welchen der beiden Radiobuttons der User gedrückt hat.
Ich hab allerdings noch keine Lösung dafür gefunden wie ich das mit den textboxen mache.

Script:
if(document.itc.itcradio[0].checked == true){
alert("Sie sind Neukunde!");} //statt dem alert sollte hier der Teil mit den textboxen kommen
else if(document.itc.itcradio[1].checked == true){
alert("Sie sind Fondkunde");}
else{
alert("Bitte eine Auswahl treffen");}


Weiters soll noch geprüft werden, ob die Eingabe numerisch ist und ob überhaupt was eingegeben wurde.
Das numerische funtzt schon, aber ob's leer ist geht noch nicht.
CODE:
var chkZ = 1;
for(i=0;i<document.itc.nk1.value.length;++i)
if(document.itc.nk1.value.charAt(i) < "0"
|| document.itc.nk1.value.charAt(i) > "9"
|| document.itc.nk1.value.charAt(i) > "") //diese Zeile funtzt so nicht! hab keine ahnung was da nicht paßt!
chkZ = -1;
if(chkZ == -1) {
alert("Nur numerische Werte erlaubt!");
document.itc.nk1.focus();
return false;
}


Zwecks Mindestbestellmenge (10Stk) soll zu guter Letzt noch geprüft werden, ob die Summe der Eingaben in die Textboxen <=9 ist. Wenn ja soll ebenfalls 'ne Meldung kommen "Mindestbestellmenge beachten!".
CODE:
if(document.itc.nk1.value <= 9){
alert("Die Mindestbestellmenge beträgt 10 Stk.!");
}

=> ich weiß nicht wie ich das machen soll, dass JS die Summe aller 3 Eingabefelder bildet und checkt ob die <=9 ist.

Hab't ihr 'nen Lösungsvorschlag??
<<<bin am verzweifeln>>>
 
Zuletzt bearbeitet:
sodala.
hab über's weekend wieder jede menge an meinem script herumgebastelt.
langsam aber sicher kommen wir der lösung ziemlich nahe:

SCRIPT (bei klick auf SUBMIT):
<script type="text/javascript">
function chkItcOrder() {
if(document.formitc.itcradio[0].checked == true){ //radiobutton 1 wurde ausgewählt
//wie gebe ich die jeweiligen textboxen frei??
window.document.forms[0].elements[1].focus();
}
else if(document.formitc.itcradio[1].checked == true){ //radiobutton 2 wurde ausgewählt
window.document.forms[0].elements[1].focus();}
else{
alert("Bitte eine Auswahl treffen");
return false; //kein action durchführen
}

//zahlencheck funtzt
var chkZ = 1;
for(i=0;i<document.formitc.itc5.value.length;++i)
if(document.formitc.itc5.value.charAt(i) < "0"
|| document.formitc.itc5.value.charAt(i) > "9")
chkZ = -1;
if(chkZ == -1) {
alert("Nur numerische Werte erlaubt!");
document.formitc.itc5.focus();
return false;
}

//summenbildung funtzt nicht
var summe = (document.formitc.itc5.value)+(document.formitc.itc10.value)+(document.formitc.itc20.value);
if (summe <= 9) {
alert("Bitte geben Sie eine Mindestbestellmenge von 10 Stück an.");
return false;
}

} //end function
</script>



ERLÄUTERUNG/BUGS:
meine texteingabefelder sehen wie folgt aus:
<input type="text" name="itc5" size="3" maxlength="5">
<input type="text" name="itc10" size="3" maxlength="5">
<input type="text" name="itc20" size="3" maxlength="5">

1) die Summe bildet JS noch überhaupt nicht
=> wenn ich die Summe bilde, dann kann ich mir den Teil mit ...charAt == "" sparen. es genügt wenn ich nur eine numerische eingabe erlaube und die summe mind. 10 sein muss. es kann ja sein, dass der user nur in eine textbox 14 eingibt. dann brauch ich die anderen beiden nicht mehr auf "" prüfen.

2) ich müßte meine textboxen (itc5/10/20) defaultmäßig auf readonly stellen und dann je nach ausgewählten radiobutton entweder die einen oder die anderen freigeben. aber wie kann ich mit dem befehl "window.document.forms[0].elements[1].focus();" die jeweiligen textboxen ansprechen??
 
na bidde.
laßt mich nur schmoooooren. nur recht so.
werd ich mir merken!

NEIN - alles zurück.
war gut so.
hab's inzwischen komplett allein gelöst. war zwar schwerarbeit aber es funtzt.

:):)

naja, JS is halt nicht so ganz meines!
 
Zurück
Oben