webForumDet fria alternativet

Ända name på input mha. Select

JavaScript

18 svar · 342 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Hejsan!

Tänkte bara kolla om det går att ändra namnet på en input genom att jag väljer
bland två alternativ i en select. Om jag väljer "news" så ska namnet på inputen
bytas till "Srubrik" och om jag väljer "members" i selecten så ska namnet på inputen bytas till "Susername".

Tack på förhand

Medlem sedan sep. 20021 655 inlägg
#2
<select onchange="document.getElementById('foo').name=this.options[this.selectedIndex].value">
    <option value="Srubrik">News</option>
    <option value="Susername">Members</option>
</select>

<input type="text" name="Srubrik" id="foo" />
Medlem sedan juli 20033 147 inlägg
#3

Hm, problemet är att jag måste ha "news" och "members" som value på selecten.
Vill ändå "binda" Srubrik till inputen när jag markerat "News" och vice versa.

Medlem sedan sep. 20021 655 inlägg
#4
<script type="text/javascript">
var namesArr = ["Srubrik", "Susername"];
</script>

...

<select onchange="document.getElementById('foo').name=namesArr[this.selectedIndex]">
    <option value="Srubrik">News</option>
    <option value="Susername">Members</option>
</select>

<input type="text" name="Srubrik" id="foo" />
Medlem sedan juli 20033 147 inlägg
#5

Har förklarat förskräckligt dåligt, ursäkta mig.
Jag har ett snabbsök formulär, där man kan söka på nyheter och medlemmar. Tabellerna i databasen för detta heter nyheter och members (inte jag som döpt dom :) )
Sedan har jag, på varje sökfält döpt formulären till Srubrik, Susername osv.. Med ett S som prefix för att det ska bli enklare i PHP koden.

Så här kör jag nu:

<select name="table" style="width:170px;">
<option value="nyheter">News</option>
<option value="members">Members</option>
</select>

<input type="text" name="[b]Srubrik[/b]" style="width:170px;">

Det jag vill göra är alltså, att ha kvar value="nyheter" och value="members" eftersom det avgör vilken tabell sökformuläret ska söka i, i databasen.
Fast jag vill samtidigt som man väljer News(nyheter) att inputfältets name="" ska bytas till Srubrik och när man väljer Members(members) ska inputfältets name="" bytas till Susername.

Medlem sedan dec. 20025 483 inlägg
#6

Fortsätter på dectgaps exempel:

<script type="text/javascript">
var namesArr = ["Srubrik", "Susername"];
</script>

<select name="table" style="width:170px;" onchange="document.getElementById('search').name=namesArr[this.selectedIndex]">
<option value="nyheter">News</option>
<option value="members">Members</option>
</select>

<input id="search" type="text" name="Srubrik" style="width:170px;">

:)

Medlem sedan juli 20033 147 inlägg
#7

Namnet på input:en ändras fortfarande inte, tyvärr.

Medlem sedan dec. 20025 483 inlägg
#8

Har du lagt till id="search" på inputfältet? Finns något annat element med id="search" eller name="search" som kan orsaka tvetydighet?

:)

Medlem sedan juli 20033 147 inlägg
#9

Tack! :)

En sak till bara, säkerligen mkt enkelt.
Om jag har en input som är hidden
<input type="hidden" name="i" value="news">

Nu vill jag byta ut "news" mot "members" när jag markerar Members i selecten. Och vice versa.

Går det? :)

Medlem sedan dec. 20025 483 inlägg
#10

:)

var namesArr = ["Srubrik", "Susername"];

function f(obj) {
    document.getElementById('search').name=namesArr[obj.selectedIndex];
    obj.form.elements["i"].value = obj.options[obj.selectedIndex].value;
}

</script>

<select name="table" style="width:170px;" onchange="f(this)">

...
Medlem sedan juli 20033 147 inlägg
#11

Kan som sagt ingenting om Javascript och aldrig orkat ta tag i det, men... i selecten, skriver jag såhär då?

onchange="document.getElementById('search').name=namesArr[this.selectedIndex]; f(this);"

Eller hur får jag in båda två?

Medlem sedan dec. 20025 483 inlägg
#12

Som jag skrev ovan:

<select name="table" style="width:170px;" onchange="f(this)">

:)

Medlem sedan juli 20033 147 inlägg
#13
Objektet stöder inte egenskapen eller metoden.

Får jag som felmeddelande. Det är på <select name="table" sty... raden.

Tack så hemskt mkt för att du tar dig tid annars Peter :)

Medlem sedan dec. 20025 483 inlägg
#14

Det är klart att man skall hjälpa till :bire

Om jag bifogar all kod då. Bara att klippa och klistra:

<script type="text/javascript">
var namesArr = ["Srubrik", "Susername"];

function f(obj) {
    document.getElementById('search').name=namesArr[obj.selectedIndex];
    obj.form.elements["i"].value = obj.options[obj.selectedIndex].value;
}

</script>

<form>
    <select name="table" style="width:170px;" onchange="f(this)">
	<option value="nyheter">News</option>
	<option value="members">Members</option>
    </select>
    <input type="hidden" name="i" value="news">
    <input id="search" type="text" name="Srubrik" style="width:170px;">
</form>

:)

Medlem sedan juli 20033 147 inlägg
#15

Får fortfarande samma fel... hade visst klippt och klistrat korrekt ;)

Medlem sedan dec. 20025 483 inlägg
#16

Om du ändrar funktionen f() till följande då?

function f(obj) {
    document.getElementById('search').name=namesArr[obj.selectedIndex];
    obj.form.elements["i"].value = obj.options[obj.selectedIndex].value;
}

:)

Medlem sedan juli 20033 147 inlägg
#17

Har faktiskt redan prövat den varianten :)
Gav samma resultat dessvärre.

Medlem sedan dec. 20025 483 inlägg
#18

Hm, vad kan det vara då? Kan du posta ett onlineexempel med den kod som ej fungerar?

:)

Medlem sedan juli 20033 147 inlägg
#19

Sådär! Har felsökt o härjat runt i koden.
Hade visst en funktion som hette f redan.

Tack så mkt Peter! :)

262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)