Avatar billede idiotbarn Nybegynder
22. december 2002 - 22:18 Der er 28 kommentarer og
1 løsning

Må ikke sætte ind...

Jeg har et tekst felt hvor det er meningen at folk skal skrive noget i...det er vigtigt at de ikke sætter noget ind ved fx ctrl+v, kan man lave en funktion der chekker at der kun kommer et bogstav ind ad gangen?
Avatar billede Slettet bruger
22. december 2002 - 22:32 #1
<textarea name="whatever" onpaste="return false;"></textarea>

Det virker dog kun i explorer!
Avatar billede idiotbarn Nybegynder
22. december 2002 - 22:38 #2
ok...man kan ikke gøre det i netscape? Og hvis de har netscape, hvad sker der så?
Avatar billede Slettet bruger
22. december 2002 - 22:42 #3
onpaste er ikke en eventhandler i netscape. Paster du ind i textareat fungerer det bare som det normalt vil gøre. Til ikke explorerbrowsere kan du nok ikke gøre så meget da der er mange flere måder at paste på end [CTRL]+[V] (onkeydown)
Avatar billede idiotbarn Nybegynder
22. december 2002 - 22:46 #4
er der mere end 2? 1 med musen og så den anden? kan man lave noget med onkeydown der forhindre den metode?
Avatar billede totaliorden Nybegynder
22. december 2002 - 22:48 #5
er det et textarea eller et text input du lige mener?
Avatar billede idiotbarn Nybegynder
22. december 2002 - 22:48 #6
det er i et tekstinput
Avatar billede Slettet bruger
22. december 2002 - 23:18 #7
Muligheder:
[REDIGER] i topmenuen [Sæt ind
[CTRL]+[V]
[højre mus] -> [Sæt ind]
Avatar billede idiotbarn Nybegynder
22. december 2002 - 23:19 #8
ok...men kan man undgå CTRL+V? Det andet er nok ikke så nemt...
Avatar billede Slettet bruger
22. december 2002 - 23:27 #9
<input onkeydown="if(event.ctrlKey && event.keyCode==86){alert('test');}" blablabla>

Sådan fanger du [CTRL]+[V], men jeg har ikke regnet ud hvordan du forhindrer selve pastet i netscape!
Avatar billede idiotbarn Nybegynder
22. december 2002 - 23:40 #10
ok...troede den du lige har lavet virkede...men det kan være at det er lidt små-umuligt?
Avatar billede Slettet bruger
22. december 2002 - 23:51 #11
Det er ikke umugligt, det kræver bare man har noget meget detaljeret viden omkring javascript (ikke DHTML)!
Avatar billede olebole Juniormester
23. december 2002 - 00:43 #12
<ole>

Man kan ikke DHTML, hvis man ikke kan JavaScript. JS er en del af DHTML  ;o)

Hvorfor må der ikke stå noget i feltet? Er det ikke nok, der ikke står noget, når formen submittes?

Det ville hjælpe, hvis du forklarer præcis, hvad du vil lave - og hvorfor

/mvh  *<|:o)
</bole>
Avatar billede Slettet bruger
23. december 2002 - 00:45 #13
Olebole>>Jeg indkredsede bare feltet man skulle søge efter de resterende informationer i....
Avatar billede idiotbarn Nybegynder
23. december 2002 - 01:06 #14
altså...det eneste der er, er at man ikke må paste tekst ind i et tekstfelt, man skal skrive noget, men man må ikke paste
Avatar billede olebole Juniormester
23. december 2002 - 01:41 #15
regin >> ;o)

idiotbarn >> Du kunne jo prøve med dette:

<input type="text"
onkeydown="num=this.value.length"
onkeyup="if(this.value.length>num+1){alert('hov');this.value=this.value.substring(0,num)}"
oncontextmenu="return false;">

/mvh
Avatar billede idiotbarn Nybegynder
23. december 2002 - 16:31 #16
fedt ole..og den virker også i netscape?
Avatar billede idiotbarn Nybegynder
23. december 2002 - 16:32 #17
men man kan stadig køre: rediger-->sæt ind...:(
Avatar billede idiotbarn Nybegynder
23. december 2002 - 16:34 #18
også i regins...
Avatar billede olebole Juniormester
27. december 2002 - 15:11 #19
Jaja ... det er en elendig løsning - men da du ikke siger, hvad (og hvordan) du skal bruge det til, kan vi jo ikke finde på noget mere elegant.
I stedet for at bygge samtlige browsere, OS'er og dele af internettet om, var det måske en idé at vælge en anden vej ... men det kræver som sagt mere info  ;o)
/mvh
Avatar billede idiotbarn Nybegynder
03. januar 2003 - 16:35 #20
det er fordi at man skal battle i en chat...ideen er så at man ikke må skrive ens tekst før, og så køre kopier og sæt ind metoden
Avatar billede Slettet bruger
03. januar 2003 - 16:41 #21
Så brug onpaste... og sig [FUCK] til dem som ikke bruger explorer!
Avatar billede olebole Juniormester
03. januar 2003 - 20:07 #22
Hvorfor ikke bare skrive noget ordentlig kode - og sige [FUCK] til dem, som kun gider lære at skrive til Explorer?  :)
Det her kunne være en mulighed (i NS6+ og IE) - det er dog nødvendigt at lave en mouseup, før der laves en ny mousedown:

<html>
<head>
<script type="text/JavaScript">
var msg, d=document;
function checkInp(e) {
    if (document.getElementById && !document.all) {
        thisKey = e.which;
        thisCtrl = e.ctrlKey;
    } else {
        thisKey = event.keyCode;
        thisCtrl = event.ctrlKey;
    }
    if (thisKey == 86 && thisCtrl) { // Hvis der pastes via keyboard
        inp.value = msg;
        event.cancelBubble = true;
        return false;
    }
    else msg = inp.value;
}
function checkInp2() {
    if ( msg!=inp.value ) inp.value = msg;
}
window.onload = function() {
    inp = d.f.t;
    msg = "";
}
</script>
</head>
<body>

<form name="f">
    <input name="t" type="text"
        onkeyup="checkInp();"
        onkeydown="checkInp2();"
        onblur="checkInp2();"
        oncontextmenu="return false;">
</form>

</body>
</html>

/mvh
Avatar billede olebole Juniormester
03. januar 2003 - 20:08 #23
"... det er dog nødvendigt at lave en keyup, før der laves en ny keydown ..." - selvfølgelig  ;o)
Avatar billede Slettet bruger
03. januar 2003 - 20:12 #24
Lige nysgerrig og doven... men hvad gør nedenstående linie?
event.cancelBubble = true;
Avatar billede olebole Juniormester
03. januar 2003 - 21:50 #25
En event 'bubbler' op igennem DOM-hierakiet:
Den starter f.eks. i et input-felt - hvor det kan aftastes.
Derefter kan samme event aftastes på den tabel-celle, input-feltet ligger i (hvis det altså ligger i en celle).
Derefter på tabellen ... derefter på dokumentet og tilsidst på window-objektet.

Denne 'bubblen' kan altså stoppes, så event'en ikke kan aftastes på et omkransende element (= et element, højere i hierakiet).

For bedre forståelse, kan du prøve dette eksempel:

<form onmousedown="alert(this.tagName);">
<table onmousedown="alert(this.tagName);" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td onmousedown="alert(this.tagName);">
        <input name="t" type="text" onmousedown="alert(this.tagName);"></td>
</tr>
</table>
</form>

Når du har testet, kan du skrive celle-koden om til:

<td onmousedown="alert(this.tagName);event.cancelBubble=true;">

... og teste igen  :)
/mvh
Avatar billede idiotbarn Nybegynder
04. januar 2003 - 00:27 #26
FEDT...der er bare et problem...hvis man skriver hurtigt, fx "de" skriver den kun e...
Avatar billede olebole Juniormester
04. januar 2003 - 03:46 #27
Ja ... og der er nok ikke det store at gøre ved det. Der skal markeres et tydeligt keyup, før der kommer et nyt keydown.

Sælg det som et ekstra moment i dysten ... man skal ikke bare skrive hurtigt - man skal også skrive omhyggeligt  ;o)
/mvh
Avatar billede idiotbarn Nybegynder
11. januar 2003 - 22:02 #28
ok...men tak alligevel...hvem vil ha point?
Avatar billede olebole Juniormester
11. januar 2003 - 22:18 #29
;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