Textfeld einblenden mit Radio Button
Reni
- javascript
Hallo,
ich möchte ein Textfeld einblenden, sofern ein Radio Button gelickt ist.
Sofern das Textfeld bei einem von 4 Radiobuttons eingeblendet werden soll geht alles ganz gut mit folgendem Code:
if (document.getElementsByName('Aufenthaltsort')[2].checked) {
document.getElementById('AufenthaltsortK').style.display= 'block';
} else {
document.getElementById('AufenthaltsortK').style.display= 'none';
}
Nun möchte ich aber, dass das Textfeld eingeblendet ist, wenn entweder der Button 3 oder der Button 4 angeklickt ist. Wenn 1 oder 2 ausgewählt wurde, soll das Textfeld ausgeblendet sein.
Mit folgendem Code geht es jedenfalls nicht:
if (document.getElementsByName('Aufenthaltsort')[2].checked) {
document.getElementById('AufenthaltsortK').style.display= 'block';
} else {
document.getElementById('AufenthaltsortK').style.display= 'none';
}
if (document.getElementsByName('Aufenthaltsort')[3].checked) {
document.getElementById('AufenthaltsortK').style.display= 'block';
} else {
document.getElementById('AufenthaltsortK').style.display= 'none';
}
Warum nicht? Obwohl die Codes für sich alleine funktionieren, klappt es zusammen nicht, dass Textfeld wird immer nur bei Klick auf den 4. Button eingeblendet....
if (document.getElementsByName('Aufenthaltsort')[2].checked) {
document.getElementById('AufenthaltsortK').style.display= 'block';
} else {
document.getElementById('AufenthaltsortK').style.display= 'none';
}
Text ist eingeblendet, wenn ...[2].checked
if (document.getElementsByName('Aufenthaltsort')[3].checked) {
document.getElementById('AufenthaltsortK').style.display= 'block';
} else {
document.getElementById('AufenthaltsortK').style.display= 'none';
}
und wird sofort wieder ausgeblendet, wenn [3].nicht_checked
LG Kalle
if (document.getElementsByName('Aufenthaltsort')[2].checked) {
document.getElementById('AufenthaltsortK').style.display= 'block';
} else {
document.getElementById('AufenthaltsortK').style.display= 'none';
}Text ist eingeblendet, wenn ...[2].checked
if (document.getElementsByName('Aufenthaltsort')[3].checked) {
document.getElementById('AufenthaltsortK').style.display= 'block';
} else {
document.getElementById('AufenthaltsortK').style.display= 'none';
}und wird sofort wieder ausgeblendet, wenn [3].nicht_checked
Und warum funktioniert es dann umgekehrt? Also Text bleibt eingeblendet, wenn [3].checked, obwohl [2]. nicht_checked ...
Hallo Reni
Und warum funktioniert es dann umgekehrt? Also Text bleibt eingeblendet, wenn [3].checked, obwohl [2]. nicht_checked ...
weil der Code Zeile für Zeile abgearbeitet wird und die spätere
Abfrage die frühere in diesem Fall bedeutungslos macht.
Du brauchst daher einen Grundzustand für das Textfeld (zB style.display = 'none'; }
den du nur dann änderst, wenn ein Ereignis eintrifft. also zB bei if(.....[var].checked) { style ändern auf display: block; }
Wenn das Ereignis nicht eintrifft, veränderst du auch den style nicht.
Somit bleibt eine vorher durchgeführte Änderung (z.B. durch Radiobutton 2)
auch dann aufrecht, wenn Radiobutton 3 nicht gedrückt wurde.
herzliche Grüße
Michael
weil der Code Zeile für Zeile abgearbeitet wird und die spätere
Abfrage die frühere in diesem Fall bedeutungslos macht.Du brauchst daher einen Grundzustand für das Textfeld (zB style.display = 'none'; }
den du nur dann änderst, wenn ein Ereignis eintrifft. also zB bei if(.....[var].checked) { style ändern auf display: block; }Wenn das Ereignis nicht eintrifft, veränderst du auch den style nicht.
Somit bleibt eine vorher durchgeführte Änderung (z.B. durch Radiobutton 2)
auch dann aufrecht, wenn Radiobutton 3 nicht gedrückt wurde.herzliche Grüße
Michael
Danke, das hat mir geholfen! Hab es jetzt hinbekommen!
Warum nicht? Obwohl die Codes für sich alleine funktionieren, klappt es zusammen nicht, dass Textfeld wird immer nur bei Klick auf den 4. Button eingeblendet....
ich bin von sowas generell kein freund so müsst es aber gehen:
a=document.getElementsByName('Aufenthaltsort'):
document.getElementById('AufenthaltsortK').style.display=((a[2].checked||a[3].checked)?'block':'none');
Warum nicht? Obwohl die Codes für sich alleine funktionieren, klappt es zusammen nicht, dass Textfeld wird immer nur bei Klick auf den 4. Button eingeblendet....
ich bin von sowas generell kein freund so müsst es aber gehen:
a=document.getElementsByName('Aufenthaltsort'):
document.getElementById('AufenthaltsortK').style.display=((a[2].checked||a[3].checked)?'block':'none');
Sorry, aber verstehe das nicht ganz: Muss ich den Code auch als if-code schreiben?
Muss ich im Html-Code auch noch etwas einfügen?
Hi,
sofern ein Radio Button gelickt ist.
<input type="radio" name="p*ssy"> ...?
SCNR ChrisB