Avatar billede neess Nybegynder
14. februar 2007 - 10:59 Der er 11 kommentarer og
1 løsning

ændre tekst på en label

Jeg har lavet sådan en lille function til at ændre en tekst på en label.

Den virker fint i IE, men firefox er bare ikke sagen.
kan man nemt passe det til, så det køre i firefox?

function setError(fieldName, errText) {
    //document.getElementById(fieldName + 'Err').innerText = errText
    document.getElementById(fieldName + 'Err').innerHTML = errText   
    if (errText) document.getElementById(fieldName).focus()
}
Avatar billede kalp Novice
14. februar 2007 - 11:09 #1
kalder du den sådan her?
setError('labelId','hehehe')

og så forstår jeg ikke hvorfor du skriver + 'Err'
sender du da ikke hele navnet med over?

og if_(errText)
giver ikke mening da text ikke er en boolean.
Avatar billede neess Nybegynder
14. februar 2007 - 11:25 #2
den blir kaldt fra en anden function, men ja det er en tekst streng
grunden til der kommer +'Err' er at fejl feltet hedder feltetnavnet+Err

Den sidste linje er uinteresent, da det er selve det at ændre teksten på label som fejler.
Avatar billede kalp Novice
14. februar 2007 - 11:29 #3
<script type="text/javascript">
function setError(fieldName, errText) {
    //document.getElementById(fieldName + 'Err').innerText = errText
    document.getElementById(fieldName).innerHTML = errText   
}
</script>

og denne label

<label id="labelet" name="labelet" onClick="setError('labelet','hehehe')">hahaha</label>


virker fint i begge hos mig.
Avatar billede kalp Novice
14. februar 2007 - 11:45 #4
testede også med + 'Err'
og det virkede altså også..
ændrede selvfølgelig mit labels id til labeletErr
Avatar billede neess Nybegynder
14. februar 2007 - 12:17 #5
Virker også hvis jeg bruger text felter og trykker på men laver jeg en

<script language="javascript">
function setError(fieldName, errText) {
    //document.getElementById(fieldName + 'Err').innerText = errText
    document.getElementById(fieldName + 'Err').innerHTML = errText   
    //if (errText) document.getElementById(fieldName).focus()
}
</script>
<form>
<label class="red" id="testerErr"></label>
<button onclick="setError('tester','fejl')"></button>
</form>

så er det som om siden reloader og teksten forsvinder hurtigt.
siden burde jo ikke reloade på en knap.
Avatar billede kalp Novice
14. februar 2007 - 12:37 #6
prøv at lave din knap sådan her

<input name="send" value="Send!" onclick="setError('tester','fejl')">
Avatar billede kalp Novice
14. februar 2007 - 12:38 #7
oops.. sådan her

<input type="button" name="send" value="Send!" onclick="setError('tester','fejl')">

det skal virke.
Avatar billede kalp Novice
14. februar 2007 - 12:38 #8
og et svar:)
Avatar billede neess Nybegynder
14. februar 2007 - 14:25 #9
Jeg har fundet ud af hvor kæden hopper af nu.
Har en function der løber flere tests igennem.

v = valReqField("firstname") && v;
denne sætningen medføre i firefox at den hopper ud af functionen og retunere en true.

men i IE løber den fint igennem og sumere op. Kan man nemt fikse det, så det køre i firefoxen?
Avatar billede kalp Novice
14. februar 2007 - 14:46 #10
jeg kan ikke selv se det desværre i det der..

af hvad jeg kender til javascipt ville jeg fjerne ;
og skrive firstname med '' rundt om
Avatar billede roenving Novice
15. februar 2007 - 11:34 #11
Du bør ikke bruge innerHTML, men den skulle dog virke i alle browsere, medmindre du bruger xhtml 1.1 eller strict ...

-- og buttons og input type="button" virker som submit-knapper i en hel del browsere, så der skal man lave en return false; efter et statement i onclick-events ...
Avatar billede neess Nybegynder
15. februar 2007 - 11:46 #12
Fandt fejlen. var i en masse af min autogenerede form felter var der ikke sat id, kun name.

Virkede da jeg fik det med :-)
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