Avatar billede spejder_leon Nybegynder
23. oktober 2006 - 02:24 Der er 5 kommentarer og
1 løsning

Select box skal vise en input box, hvis "tilføj værdi" vælges

Jeg har en php web page. På denne er der nogle select (combobox), Hvis brugeren vælger værdien "Tilføj ny", så skal der vises et textinput felt ved siden af combo boksen, og fokus sættes i denne.

Det som brugeren skrive i dette felt skal så danne grundlag for mine videre databehandling.

Hvis brugeren herefter vælger en anden værdi i select (comboboxen), skal text input feltet skjules igen.
Avatar billede spejder_leon Nybegynder
23. oktober 2006 - 04:01 #1
<select name="dim4Select" onClick="java script:if (document.getElementById('form1').dim4Select.value=='new'){document.getElementById('form1').dn4.style.visibility='visible';document.form1.dn4.focus();}else{document.getElementById('form1').dn4.style.visibility='hidden';} void 0">
        <option value="hej">HEJ1</option>
        <option value="hej">HEJ2</option>
        <option value="hej">HEJ3</option>
        <option value="new">Ny</option>
    </select>
Avatar billede olebole Juniormester
23. oktober 2006 - 15:28 #2
<ole>

ehhhh .... mon ikke det script skal køres på onchange i stedet? I hvert fald bør syntaksen rettes:

<select name="dim4Select" onclick="if (document.getElementById('form1').dim4Select.value=='new'){document.getElementById('form1').dn4.style.visibility='visible';document.form1.dn4.focus();}else{document.getElementById('form1').dn4.style.visibility='hidden';}">

- og hvis select-elementet ligger i samme form som det andet felt, kan du skrive:

<select name="dim4Select" onclick="if (this.value=='new'){this.form.dn4.style.visibility='visible';this.form.dn4.focus()}else{this.form.dn4.style.visibility='hidden'}">

- eller endnu slankere:

<select name="dim4Select" onclick="var e=this.form.dn4;if (this.value=='new'){e.style.visibility='visible';e.focus()}else{e.style.visibility='hidden'}">

/mvh
</bole>
Avatar billede spejder_leon Nybegynder
23. oktober 2006 - 16:01 #3
Jo, du har fuldstændig ret, jeg havde selv fundet frem til onChange eventen isetedet. Bare fået kopieret en forkert version herind... Beklager.

Ydermere har jeg, da der er tale om den del select bokse hvor dette skal være gældende, smidt handlingen op i en funktion der så tager sig af om textfelterne skal vises ell. ej.

Nedenfor en beskrivelse af onClick problemet:

Problemet med anvendelsen af onclick er at hvis jeg vælger "New" i select boksen, så fremkommer textfeltet og det får fokus - helt korrekt, men hvis jeg så vil skifte tilbage til noget andet end "NEW", så flyttes fokus til textfeltet hvergang jeg forsøger at skifte værdien i select boksen.

Det er også et problem at funktionen ikke virker når jeg kun bruger keyboardet til at skifte værdierne med. Det gør de ved onChange eventen.
Avatar billede olebole Juniormester
23. oktober 2006 - 16:09 #4
Fino ... men lige et par tips: Du kan medsende en reference til select-elementet med 'this':

function doDaShit(sel) {
    alert(sel.innerHTML); // i 'sel' ligger en reference til elementet selv
    alert(sel.form.innerHTML); // 'sel.form' vil referere til formen, elementet ligger i
    alert(sel.form.gnu.value); // sådan adresserer du et andet element i samme form
}

<form>
<select onchange="doDaShit(this)">
    ... ... ... ...
</select>
<input type="text" name="gnu" value="sært dyr">
</form>

- og husk: aldrig 'java script:' i en event-handler. Altså ikke noget med:
    onchange="java script: ..........."
Avatar billede spejder_leon Nybegynder
23. oktober 2006 - 16:14 #5
Cool ! - Jeg sletter javascript delen! - Nu er jeg så lidt bitter over ikke at kunne  give dig nogle point. - Hvordan klarer man sådan en? - opretter man et nyt spg. ?
Avatar billede olebole Juniormester
23. oktober 2006 - 16:16 #6
Nej pyt ... jeg har rigeligt. Vent til en anden gang ... det vigtigste er, du får løst dine problemer. Men tak for tanken  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester