|
| indikere ændring i form Fra : Leonard |
Dato : 10-04-05 11:06 |
|
Findes der noget javascript, der kan indikere at der er sket en
ændring i et felt i en formular?
<form action='/admin/rettekst.php' method='post'>
<input type='text' name='menutext' value='Reservedele' size='20' />
<textarea cols='35' rows='20' name='text'> Al slags service udføres på
alle slags maskiner</textarea>
<input type='submit' value='Ret Tekster' />
</form>
Jeg vil gerne have noget der tydeligt fortæller brugeren, at han har
rettet i et af felterne, men ikke trykket på Submit endnu.
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Jens Gyldenkærne Cla~ (10-04-2005)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 10-04-05 11:30 |
|
Leonard skrev:
> Findes der noget javascript, der kan indikere at der er sket
> en ændring i et felt i en formular?
Ja. Alle almindelige formfelter har en onchange-hændelse der netop
kører når feltværdien ændres.
> Jeg vil gerne have noget der tydeligt fortæller brugeren, at
> han har rettet i et af felterne, men ikke trykket på Submit
> endnu.
Med onchange kan du fx ændre i formateringen på felter der er
ændret - eller du kan tilføje et tegn ved siden af feltet.
Mulighederne er mange.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 12:07 |
|
Jens Gyldenkærne Clausen <jens@gyros.invalid> wrote:
>Med onchange kan du fx tilføje et tegn ved siden af feltet.
OK, hvor kan jeg finde et eksempel på det?
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Christian Hansen (10-04-2005)
| Kommentar Fra : Christian Hansen |
Dato : 10-04-05 13:37 |
|
Leonard wrote:
> OK, hvor kan jeg finde et eksempel på det?
>
<input type="text"
onchange="document.getElementById('count').innerHTML=this.value.length"><div
id="count"></div>
Bemærk at mange browsere først aktivere onChange, når man forlader
feltet ( onBlur ). Hvis man vil have live-opdatering, kan man derfor
også benytte onKeyUp-eventhandleren - i tekstfelter that is.
<input type="text"
onkeyup="document.getElementById('count').innerHTML=this.value.length"><div
id="count"></div>
Læs mere om eventhandlere her :
http://www.devguru.com/Technologies/ecmascript/quickref/js_eventhandler.html
Mvh Christian
P.S. Google har ret mange eksempler ;)
| |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 19:00 |
|
Christian Hansen <chrsen@fundanemt.com> wrote:
>Hvis man vil have live-opdatering, kan man derfor
>også benytte onKeyUp-eventhandleren - i tekstfelter that is.
>
><input type="text"
>onkeyup="document.getElementById('count').innerHTML=this.value.length"><div
>id="count"></div>
Det er fint og det virker, men i stedet for at få skrevt et tal ud med
antal tegn, så vil jeg gerne bare have en tekst:
"Du har ændret teksten, husk at gemme det med knappen SUBMIT"
- og jeg må tilstå at jeg ikke evner at ændre det til det.
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Erik Ginnerskov (10-04-2005)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-04-05 20:33 |
|
Leonard wrote:
> Christian Hansen <chrsen@fundanemt.com> wrote:
>
>> Hvis man vil have live-opdatering, kan man derfor
>> også benytte onKeyUp-eventhandleren - i tekstfelter that is.
>>
>> <input type="text"
>>
onkeyup="document.getElementById('count').innerHTML=this.value.length"><div
>> id="count"></div>
>
> Det er fint og det virker, men i stedet for at få skrevt et tal ud med
> antal tegn, så vil jeg gerne bare have en tekst:
> "Du har ændret teksten, husk at gemme det med knappen SUBMIT"
>
> - og jeg må tilstå at jeg ikke evner at ændre det til det.
Kan du ikke bruge document.write?
onkeyup="document.getElementById('count').innerHTML=document.write('Du har
ændret teksten, husk at gemme det med knappen SUBMIT')"
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk/
| |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 20:39 |
|
"Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote:
>Kan du ikke bruge document.write?
>
>onkeyup="document.getElementById('count').innerHTML=document.write('Du har
>ændret teksten, husk at gemme det med knappen SUBMIT')"
Tjoh, men hvor bliver det skrevet?
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Erik Ginnerskov (10-04-2005)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-04-05 20:51 |
| | |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 21:01 |
|
"Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote:
>Mon ikke samme sted som du ellers med this.value.length fik udskrevet et
>tal?
Næh, der kommer ikke nogen tekst?
<form action="#" method="post">
<input type="text"
onkeyup="document.getElementById('count').innerHTML=document.write('Du
har
ændret teksten, husk at gemme det med knappen SUBMIT')" />
<div id="count"></div>
</form>
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Erik Ginnerskov (10-04-2005)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-04-05 21:12 |
|
Leonard wrote:
> Næh, der kommer ikke nogen tekst?
Hvordan så med dette:
<form action="#" method="post">
<input type="text"
onkeyup="document.getElementById('count').innerHTML.write('Du
har ændret teksten, husk at gemme det med knappen SUBMIT')" />
<div id="count"></div>
</form>
Det er bare et forsøg. Jeg er ikke js-ekspert. Dur det heller ikke, må andre
træde til.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk/
| |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 21:24 |
|
"Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote:
>Det er bare et forsøg. Jeg er ikke js-ekspert. Dur det heller ikke, må andre
>træde til.
Tak for forsøget, det hjalp ikke, så nu må infanteriet gerne træde til
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Jeppe Høiby (10-04-2005)
| Kommentar Fra : Jeppe Høiby |
Dato : 10-04-05 21:44 |
|
Leonard wrote:
> Tak for forsøget, det hjalp ikke, så nu må infanteriet gerne træde til
>
<form action="#" method="post">
<input type="text"
onkeyup="document.getElementById('count').innerHTML='Du
har ændret teksten, husk at gemme det med knappen SUBMIT'" />
<div id="count"></div>
</form>
eller (ikke testet):
<form action="#" method="post">
<input type="text"
onkeyup="document.getElementById('count').appendChild(createTextNode('Du
har ændret teksten, husk at gemme det med knappen SUBMIT'))" />
<div id="count"></div>
</form>
--
Med venlig hilsen
Jeppe Høiby
We have unmistakable proof that throughout all past time, there has been
a ceaseless devouring of the weak by the strong.
| |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 22:11 |
|
Jeppe Høiby <spam@spam.com> wrote:
><form action="#" method="post">
><input type="text"
>onkeyup="document.getElementById('count').innerHTML='Du
>har ændret teksten, husk at gemme det med knappen SUBMIT'" />
><div id="count"></div>
></form>
Yes, nu virker det!
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Tomasz Otap (10-04-2005)
| Kommentar Fra : Tomasz Otap |
Dato : 10-04-05 21:53 |
|
Erik Ginnerskov wrote:
> onkeyup="document.getElementById('count').innerHTML.write('Du
> har ændret teksten, husk at gemme det med knappen SUBMIT')" />
> <div id="count"></div>
> </form>
Meget tæt på: den rigtige syntaks er:
document.getElementById('count').innerHTML = 'Du har ændret teksten,
husk at gemme det med knappen SUBMIT.')
Du kan desværre ikke bruge document.write efter en side er færdigloadet.
Det vil i bedste tilfælde starte et nyt dokument med det angivne indhold
som HTML, f.eks.:
<a href="JavaScript:document.write('Hu hej!')">Fiskesuppe?</a>
t
| |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 22:09 |
|
Tomasz Otap <tomasz@otap.justRemoveThis.dk> wrote:
>Meget tæt på: den rigtige syntaks er:
>
>document.getElementById('count').innerHTML = 'Du har ændret teksten,
>husk at gemme det med knappen SUBMIT.')
Det virker heller ikke, og jeg synes også der er noget galt med
antallet af parenteser, men jeg har prøvet både med og uden ('Du ...')
og 'Du ...'
I Firefox har jeg fundet en javascript console, der melder fejlen:
unterminated string literal og så peger den på 'D
og hele tagget ser således ud:
<input type="text" onkeyup="document.getElementById('count').innerHTML
= 'Du har ændret teksten, husk at gemme det med knappen SUBMIT.'" />
mangler der et semicolon et sted ?
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Leonard (10-04-2005)
| Kommentar Fra : Leonard |
Dato : 10-04-05 22:13 |
|
Leonard <usenet@leonard.dk> wrote:
>Det virker heller ikke,
Undskyld, jo det virker, det var det der med at have javascript på
flere linier, det duer jo ikke.
--
med venlig hilsen
Leonard - http://leonard.dk/
Er du skiftet til Firefox? www.mozilla.org
| |
Tomasz Otap (10-04-2005)
| Kommentar Fra : Tomasz Otap |
Dato : 10-04-05 22:19 |
|
Leonard wrote:
> Det virker heller ikke, og jeg synes også der er noget galt med
> antallet af parenteser, men jeg har prøvet både med og uden ('Du ...')
> og 'Du ...'
My bad - det er hvad der kommer ud af hastig cut'n paste. Den kode, du
angiver nedenunder, er korrekt - den sidste parentes skal *ikke* med:
> <input type="text" onkeyup="document.getElementById('count').innerHTML
> = 'Du har ændret teksten, husk at gemme det med knappen SUBMIT.'" />
Jeg har lige testet den linie i Firefox og IE, og den fungerer efter
hensigten - fuldstændig kode testet var:
------------
<input type="text" onkeyup="document.getElementById('count').innerHTML
= 'Du har ændret teksten, husk at gemme det med knappen SUBMIT.'" />
<div id="count"></div>
------------
Du må gerne sætte et semikolon bagerst (...med knappen SUBMIT';" />),
men det er ikke nødvendigt, da du kun har 1 sætning kode.
t
| |
|
|