![]() |
|
|
|||||||
| Javascript Här diskuteras det som rör Javascript, AJAX, DOM & DHTML. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2003-02-03
Ort: Sabang Beach, Puerto Galera, Philippines
Inlägg: 4 457
Lösningar: 73 |
Inaktivera tre Textrutor m.h.a Radioknappar
Tja!
Har sökt och kollat igenom en del trådar, även testar olika saker, men inte fått till ngn lösning på mitt problem. Det här är läget: Har ett stort formulär, där jag vill kunna inaktivera / aktivera tre textrutor, beroende på om en radioknapp står på "Ja", eller på "Nej". När sidan laddas ska något av "Ja" resp. "Nej" kunna vara valt, beroende på en kryssruta i min Databas. Hur ska jag lösa det här på bästa sätt? Textrutorna som ska ändras heter "aNum", "vFrom" resp. "vTo" och radioknapparna heter "service" och kan vara av värdet "yes" eller "no". Tack! |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2003-02-03
Ort: Sabang Beach, Puerto Galera, Philippines
Inlägg: 4 457
Lösningar: 73 |
Nu har jag sökt ännu mer och hittat en grej som borde funka, men som inte gör det...?
Kod:
<!--
function sEdit(){
var f = document.frmEdit;
if(f.service[0].checked == true){
f.aNum.disabled = true;
f.vFrom.disabled = true;
f.vTo.disabled = true;
}
else{
f.aNum.disabled = false;
f.vFrom.disabled = false;
f.vTo.disabled = false;
}
}
//-->
.....................................
<input type="radio" name="service" value="ja" style="background-color: transparent; border: 0px;" onclick="sEdit();">Ja
<input type="radio" name="service" value="nej" style="background-color: transparent; border: 0px;" onclick="sEdit();" checked>Nej
Någon som har en bättre lösning på det här? Tack! |
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2003-02-03
Ort: Sabang Beach, Puerto Galera, Philippines
Inlägg: 4 457
Lösningar: 73 |
Nu har jag löst det första problemet, det är precis som jag vill ha det.
Kod:
<script type="text/javascript">
var arr = ["vFrom","vTo", "aNum"];
function ed(f, e, d) {
var elms = f.elements,
eLen = e.length,
dLen = d.length;
while (eLen-->0) elms[e[eLen]].disabled = false;
while (dLen-->0) elms[d[dLen]].disabled = true;
switch (elms["vFrom"].disabled) {
case true:
{
elms["vFrom"].parentNode.style.backgroundColor = "#FFFFFF";
elms["vFrom"].style.backgroundColor = "#E3E4B4";
elms["vFrom"].style.borderColor = "#C9C7BA";
elms["vTo"].parentNode.style.backgroundColor = "#FFFFFF";
elms["vTo"].style.backgroundColor = "#E3E4B4";
elms["vTo"].style.borderColor = "#C9C7BA";
elms["aNum"].parentNode.style.backgroundColor = "#FFFFFF";
elms["aNum"].style.backgroundColor = "#E3E4B4";
elms["aNum"].style.borderColor = "#C9C7BA";
f.vFrom.disabled = true;
f.vTo.disabled = true;
f.aNum.disabled = true;
f.vFrom.value = "";
f.vTo.value = "";
f.aNum.value = "";
} break;
case false:
{
elms["vFrom"].parentNode.style.backgroundColor = "#FFFFFF";
elms["vFrom"].style.backgroundColor = "#FFFFC0";
elms["vFrom"].style.borderColor = "#C8C8C8";
elms["vTo"].parentNode.style.backgroundColor = "#FFFFFF";
elms["vTo"].style.backgroundColor = "#FFFFC0";
elms["vTo"].style.borderColor = "#C8C8C8";
elms["aNum"].parentNode.style.backgroundColor = "#FFFFFF";
elms["aNum"].style.backgroundColor = "#FFFFC0";
elms["aNum"].style.borderColor = "#C8C8C8";
f.vFrom.disabled = false;
f.vTo.disabled = false;
f.aNum.disabled = false;
} break;
}
}
..........................................
<input type="radio" name="service" value="ja" style="background-color: transparent; border: 0px;" onclick="ed(this.form, ['vFrom'], ['vTo'])">Ja
<input type="radio" name="service" value="nej" style="background-color: transparent; border: 0px;" checked="checked" onclick="ed(this.form, ['vTo'], ['vFrom'])">Nej
Jag kan trigga funktionen via bodytaggen, men det kommer bli ganska omständigt, så nu undrar jag om jag kan göra på något lättare sätt? Tack! |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2003-04-02
Ort: Lund
Inlägg: 1 660
Lösningar: 64 |
HEJ!
Eftersom du skriver att du vill trigga funktionen onload, får jag intrycket att du inte vet hur du ska få radioknapparna att vara fyllda eller ej? Det gör du genom att sätta checked på den beronde på vad du har i databasen. if rs("rb1")=1 then a=" checked" och sedan <input type=radio<%=a%> osv> Du gör likadant med disabled på textrutorna.
__________________
Johnny wF-råd: - är ditt inlägg förståeligt? - korrekturläs ditt inlägg, redigera stavfel - kom ihåg att markera det inlägg som löste problemet |
|
|
|
|
|
#5 |
|
Medlem
Registrerad: 2003-02-03
Ort: Sabang Beach, Puerto Galera, Philippines
Inlägg: 4 457
Lösningar: 73 |
Tja
Tack för svaret, men löste det igårkväll. Kan visa en lösning lite senare när jag kommer hem. |
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2002-12-15
Ort: Hudiksvall
Inlägg: 5 477
Lösningar: 806 |
Under tiden hinner jag posta en:
Kod:
<form name="frmEdit">
<input type="radio" name="service" value="yes" onclick="c()"> Ja
<input type="radio" name="service" value="no" checked="checked" onclick="c()"> Nej
<input type="text" name="aNum">
<input type="text" name="vFrom">
<input type="text" name="vTo">
</form>
<script type="text/javascript">
function c(){
var cb = document.forms["frmEdit"].elements,
ch = cb["service"][1].checked;
cb["aNum"].disabled = ch;
cb["vFrom"].disabled = ch;
cb["vTo"].disabled = ch;
}
window.onload = c;
</script>
|
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|