webForumDet fria alternativet

Disable på textfält beroende på select-värde

5 svar · 435 visningar · startad av Hulth

HulthMedlem sedan juni 2001272 inlägg
#1

Jag har 3 st textfält. Ovanför dessa ligger det en select.

Selecten ser ut såhär:

<select name="vhrp" id="vhrp">
<option value="">  </option>
<option value="a">123</option>
<option value="b">456</option>
<option value="c">789</option>
</select>

Textfälten:

<input name="a" type="text">
<input name="b" type="text">
<input name="c" type="text">

Om jag väljer a i select:en ska textfält a bli disabled.
Om jag väljer b i select:en ska textfält b bli disabled.
Likadant med c.

Nån som vet hur man gör? Har sökt runt lite här, men förstår inte riktigt ;)

HansenMedlem sedan aug. 2000374 inlägg
#2

Re: Disable på textfält beroende på select-värde

Hulth skrev:

[...]Har sökt runt lite här, men förstår inte riktigt ;)

Vad är det du inte förstår?

Här är några bra länkar som kommer få dig på rätt fot:

dectgapMedlem sedan sep. 20021 655 inlägg
#3
<script type="text/javascript">
function disableOneElm(theForm, disableName) {
    var elms = ["a", "b", "c"];
    var i = elms.length;

    while(i-->0)
        theForm.elements[ elms[i] ].disabled = (elms[i] == disableName);
}
</script>

...

<form>

<select name="vhrp" id="vhrp" onchange="disableOneElm(this.form, this.options[this.selectedIndex].value)">
<option value="">  </option>
<option value="a">123</option>
<option value="b">456</option>
<option value="c">789</option>
</select>

<input name="a" type="text">
<input name="b" type="text">
<input name="c" type="text">

</form>
HulthMedlem sedan juni 2001272 inlägg
#4

Om man samtidigt vill tömma och ändra bakgrundsfärg på input-rutan?

Så dels den som använder sidan ser att den inte ska användas + att jag vet att den är tom när jag sedan behandlar informationen som kommer ifrån form:en (ifall man först har skrivit något i den, sen valt bort den)

dectgapMedlem sedan sep. 20021 655 inlägg
#5

Ett fält som är disabled skickas inte, så du behöver inte bry dig om att tömma det av den anledningen du skriver.

För att få rätt färgen:

<script type="text/javascript">
function disableOneElm(theForm, disableName) {
	var disabledColor = "#f00";
    var elms = ["a", "b", "c"];
    var i = elms.length;

    while(i-->0) {
        theForm.elements[ elms[i] ].disabled = (elms[i] == disableName);
    	theForm.elements[ elms[i] ].style.backgroundColor = (elms[i] == disableName) ? disabledColor : "";
    }
}
</script>

...

<form>

<select name="vhrp" id="vhrp" onchange="disableOneElm(this.form, this.options[this.selectedIndex].value)">
<option value="">  </option>
<option value="a">123</option>
<option value="b">456</option>
<option value="c">789</option>
</select>

<input name="a" type="text">
<input name="b" type="text">
<input name="c" type="text">

</form>
HulthMedlem sedan juni 2001272 inlägg
#6

Tack för att du tog dig tid dectgap =)

132 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
130 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)