Code vereinfachen
Volker
- javascript
Hi,
wie kann ich diesen langen Javascript-Code am Besten verkürzen? Wahrscheinlich indem ich this als Funktionsparameter übergebe? Aber wie?
Die einzigste Vereinfachung die mir gerade einfällt wäre, dass ich dann statt "document.getElementById("ipOpt2")" "document.getElementById(this)" schreiben könnte.
Vielleicht habt ihr noch ein paar Ratschläge an mich, das wäre super!
function ipconfig(value)
{
if(value)
{
if(document.getElementById("ipOpt2").value=="dhcp")
{
document.myform.ip2.disabled = document.myform.sub2.disabled = document.myform.gate2.disabled = true;
}
else if(document.getElementById("ipOpt2").value=="dflt-ip")
{
document.myform.ip2.disabled = document.myform.sub2.disabled = document.myform.gate2.disabled = false;
}
} else {
if(document.getElementById("ipOpt1").value=="dhcp")
{
document.myform.ip1.disabled = document.myform.sub1.disabled = document.myform.gate1.disabled = true;
}
else if(document.getElementById("ipOpt1").value=="dflt-ip")
{
document.myform.ip1.disabled = document.myform.sub1.disabled = document.myform.gate1.disabled = false;
}
}
}
<select class="form-select2" id="ipOpt1" name="ipOpt1" onChange="ipconfig(0)">
<option value="dhcp">DHCP</option>
<option value="dflt-ip">Dflt-IP</option>
</select>
<select class="form-select2" id="ipOpt2" name="ipOpt2" onChange="ipconfig(1)">
<option value="dhcp">DHCP</option>
<option value="dflt-ip">Dflt-IP</option>
</select>
Gruß
Volker
Hi,
wie kann ich diesen langen Javascript-Code am Besten verkürzen? Wahrscheinlich indem ich this als Funktionsparameter übergebe? Aber wie?
Die einzigste Vereinfachung die mir gerade einfällt wäre, dass ich dann statt "document.getElementById("ipOpt2")" "document.getElementById(this)" schreiben könnte.
Wohl kaum
Wenn dein Aufruf z.B. lautet
<someelement somehandler="somefunc(this,'someotherpar')" someprop="" />
so steht das aufrufende Element in der Funktion zur Verfügung
function somefunc(elem, somepar){
/* manipuliere Eigenschaften des aufrufenden Elements */
elem.someprop="somevalue";
}
mfg Beat
Hi, Volker!
Eine weitere Verkürzung ist noch machbar, wenn Du berücksichtigst, dass ja disabled nur dann true sein soll, wenn der Wert "dhcp" gewählt ist. In diesem Fall kannst Du die if-Schleife in die verkürzte Form bringen, d.h. statt:
if(document.getElementById("ipOpt2").value=="dhcp")
{
document.myform.ip2.disabled = document.myform.sub2.disabled = document.myform.gate2.disabled = true;
}
else if(document.getElementById("ipOpt2").value=="dflt-ip")
{
document.myform.ip2.disabled = document.myform.sub2.disabled = document.myform.gate2.disabled = false;
}
schreibst Du einfach
document.myform.ip2.disabled = document.myform.sub2.disabled = document.myform.gate2.disabled = document.getElementById("ipOpt2").value=="dhcp";
und ersparst Dir unnötigen Code und eine zusätzliche Abfrage.
Gruß, LX