Avatar billede and_moe Nybegynder
25. september 2004 - 16:41 Der er 9 kommentarer og
1 løsning

Ændre en hidden input værdi med JavaScript

Jeg har i min form (med navnet grid) et skjult inputfelt der ser sådan ud:
<input type="hidden" name="i1-1" value="noseat" />

Et andet sted i mit dokument har jeg så en tabelcelle som ser sådan ud:
<td class="noseat" id="1-1" onclick="shiftStatus('1-1');">&nbsp;</td>

Nu vil jeg så gerne have det sådan, at når man klikker på tabelcellen, så ændrer den value'en på min input med navnet 'i1-1', samt baggrundsfarven på cellen.

Jeg har foreløbig konstueret følgende, hvor farveskriftet virker fint, men value skiftet ikke virker overhovedet:

function shiftStatus(cr) {
    setBgColor(cr, '#ff6699');
   
    var id = 'i'+cr
    var blok = document.grid.id;
    blok.value = "seat";
}

Det skal siges at der er vigtigt at det er navnet på tabelcellen som videreføres som variabel og at der så i min js-funktion tilføjes et i.

Nogen idéer?
Avatar billede Slettet bruger
25. september 2004 - 17:08 #1
Hvad med:

<input type="hidden" name="i1-1" id="i1-1" value="noseat" />

og

function shiftStatus(cr) {
    setBgColor(cr, '#ff6699');
 
    var id = 'i'+cr
    var blok = getElementById(id);
    blok.value = "seat";
}
Avatar billede and_moe Nybegynder
25. september 2004 - 17:22 #2
Det virker ikke.
Avatar billede Slettet bruger
25. september 2004 - 17:33 #3
Hov forresten. Der manglede et ; i slutningen af en linie. (Både i din og i min kode.)

var id = 'i'+cr;
Avatar billede and_moe Nybegynder
25. september 2004 - 18:08 #4
;-)

Men det virker stadig ikke...
Avatar billede roenving Novice
26. september 2004 - 02:28 #5
<td class="noseat" id="1-1" onclick="shiftStatus('1-1',this);">&nbsp;</td>

<script type="text/javascript">
function shiftStatus(cr,flt) {
    flt.style.backgroundColor= '#ff6699';
    document.getElementById('i'+cr) = "seat";
}
</script>
Avatar billede and_moe Nybegynder
26. september 2004 - 11:15 #6
Tak.
Dit forslag virkede ikke helt, men den her virker:

function shiftStatus(cr) {
    setBgColor(cr, '#ff6699');
    document.getElementById('i'+cr).value = "seat";
}

Læg et svar, hvis I vil have point.
Avatar billede roenving Novice
26. september 2004 - 11:27 #7
Ja, der manglede jo en .value, eller f.eks. en .innerHTML:

<table><tr>
<td class="noseat" id="t1-1" onclick="shiftStatus(this);" style="cursor:pointer;">&nbsp;Tryk her for at reservere sæde 1-1</td>
</tr></table>
<span id="i1-1"></span>

<script type="text/javascript">
function shiftStatus(flt) {
    flt.style.backgroundColor= '#ff6699';
    document.getElementById(flt.id.replace(/^t/,"i")).innerHTML = "seat";
}
</script>

-- i en endnu mere forkortet udgave !-)

-- og jeg har tilføjet et bogstav foran cellens id, da et id, som starter med et tal simpelthen er ulovligt ifølge html-standarden ...

Velbekomme '-)
Avatar billede roenving Novice
26. september 2004 - 16:22 #8
Tak for point ;~}
Avatar billede Slettet bruger
26. september 2004 - 16:27 #9
Så skal jeg bare lære at huske, at getElementById er en metode i document, og at den ikke kan kaldes for sig selv.
Avatar billede roenving Novice
26. september 2004 - 16:33 #10
*g*
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