Forstår ikke spørgmålet helt, du har en tekst boks, hvor der står nået tekst i forvejen, når du sætter muse markøring ind i tekst feltet fjernes teksten.
Du vil så gerne vise en 2 tekst i feltet.
Nej, jeg skal bruge et event, der invokes, så snart brugeren udfører en vilkårlig redigering af teksten i et tekstfelt.
altså en pop up boks ligesom snart en bruger har redigeret tekstfeltet.
<script>
function inform(){
alert("du har aktiveret mig")
}
</script>
<form>
<input type="button" name="test" value="klik mig" onclick="inform()">
</form>
eller
Onclick invoker jo uden ændring af teksten. Hvad med denne?
<input type="text" name="tekst" onKeyUp="inform()">
Det skal lige siges, at det er HTML5. Er onkeyup gyldig der?
Jeg tester lige, om det virker.
Det lader til at fungere nogenlunde, men resultatet er ikke helt rammende nok; hvis jeg f.eks. trækker indhold ind i feltet, invokes eventen selvfølgelig ikke, hvilket er problematisk. Er der ikke en decideret oncontentchanged-lignende metode?
Nej, men du kan jo sagtens tilknytte kode til flere events: onfocus, onchange og onkeyup
God damn, JavaScript er elendigt.
Anyhow, findes der så en event, der reagerer på paste? Hvordan håndterer jeg tekst trukket ind i feltet?
Kører en timeout check på elementet ?
... 100 ms. er måske for højt sat ...
(Paste via rediger, sætind kan du ikke fange på anden måde)
<script type="text/javascript">
window.onload=function(){
setTimeout("chk('"+document.getElementById("noget").value+"')",100);
}
function chk(v){
if(document.getElementById("noget").value!=v){
alert("Gør noget");
}else{
setTimeout("chk('"+v+"')",100);
}
}
</script>
Ugh... Oh, well, hvis det er den eneste dækkende løsning - men kønt er det sgu ikke! ;)
Alle andre måder kan dækkes ind af
onmouseover (marker tekst med mus, hold
venstre knap inde og træk tekst op - og giv slip)
onmouseup (sætind via contentmenu)
onkeyup (input - sætind via tastetur)
... og så måske onchange på til
nød-håndtering af rediger - sætind.
Det må vel slå an så...
Men jeg ville godt nok ønske, at systemet var mere gennemført.
Rant over.
Smid et svar :)
Her er et svar :)
... og tak for point :)