Discussione:
disabilitare INVIO in una textarea
(troppo vecchio per rispondere)
Marco
21 anni fa
Permalink
salve a TUTTE/i,

vorrei disabilitare il tasto INVIO per una casella di inserimento testo.
mi spiego meglio:

ho realizzato un form.
in tale form ho inserito una TEXTAREA per inserire del testo.
vorrei che in questa TEXTAREA sia disattivato il tasto INVIO in modo da non
poter andare a capo.

questo è il codice fino ad ora:


<P align="center">
<label class="campiform3>Inserisci testo:<BR>
<textarea name="testo" cols="40" rows="10"
class="campiform"></textarea></label>
</P><BR>


come posso fare ?

grazie,

Marco.
Cooper
21 anni fa
Permalink
Post by Marco
salve a TUTTE/i,
vorrei disabilitare il tasto INVIO per una casella di inserimento testo.
ho realizzato un form.
in tale form ho inserito una TEXTAREA per inserire del testo.
vorrei che in questa TEXTAREA sia disattivato il tasto INVIO in modo da non
poter andare a capo.
<P align="center">
<label class="campiform3>Inserisci testo:<BR>
<textarea name="testo" cols="40" rows="10"
class="campiform"></textarea></label>
</P><BR>
Non credo si possa fare lato client, occorrebbe richiamare int10. Potresti
però rilevare la presenza del codice #13 (cr) #10 (cf) e annullare
l'inserimento.
In ogni caso se il tuo obiettivo è avere tutto di fila, credo che il
controllo puoi farlo dopo l'inserimento anzichè prima :-)
Cooper.
--
BlueWare WebAgency
[web] http://www.blueware.it
http://www.italchat.it
[icq] 146781935
Agostino De Matteis
21 anni fa
Permalink
Post by Marco
vorrei disabilitare il tasto INVIO per una casella di inserimento testo.
[...]
Post by Marco
<P align="center">
<label class="campiform3>Inserisci testo:<BR>
<textarea name="testo" cols="40" rows="10"
class="campiform"></textarea></label>
</P><BR>
come posso fare ?
Ti faccio un esempio, adattalo al tuo codice:

<html>

<head>

<script LANGUAGE="JavaScript">

var ie = document.all;
var ns6 = document.getElementById && !document.all;

function key(e){
var obj=ns6?e.target:event.srcElement;
var keyis=ns6?e.keyCode:event.keyCode;
if(obj.id=="testo0"){
if(keyis==13){
if(ns6){
e.preventDefault();
} else {
event.returnValue=false;
}
}
}
}
document.onkeypress=key;

</script>

</head>

<body>

<form>

<textarea id="testo0" name="testo0" cols="40" rows="5"></textarea>
<textarea id="testo1" name="testo1" cols="40" rows="5"></textarea>

</form>
</body>
</html>

Usando l'id puoi definire su quale delle due textarea disabilitare il
tasto.

Testato con IE 6 e Mozilla 1.5

'bye
Marco
21 anni fa
Permalink
...
ed ora testato e perfettamente funzionante anche con ie5.

GRAZIE INFINITAMENTE!!!!!
mi avete aiutato a risolvere un problema immenso!!!
:-)

in pratica non riuscivo ad importare in excel un file txt separando i campi,
perché il tasto invio mandava a capo e di conseguenza veniva visto come un
nuovo campo!!

MA ORA IL PROBLEMA ME LO AVETE RISOLTO!!!
GRAZIE DI CUORE!!!!
:-)

p.s.
vorrei fare la stessa cosa col tasto ":" (due punti).
è possibile associarlo al tasto invio ?
come posso inserirlo nel codice ?
GRAZIE ANCORA !!!!
Agostino De Matteis
21 anni fa
Permalink
Post by Marco
p.s.
vorrei fare la stessa cosa col tasto ":" (due punti).
è possibile associarlo al tasto invio ?
No, ma puoi gestirlo ugualmente aggiungendo il codice del tasto da
disabilitare.
Post by Marco
come posso inserirlo nel codice ?
C'e' da fare qualche modifica, principalmente per Mozilla dato che per
tasti come "invio" il codice e' in keyCode ma per tasti tipo ":" lo si
trova in charCode:

function key(e){
var obj=ns6?e.target:event.srcElement;
var keyis=ns6?e.keyCode:event.keyCode;
var charis=ns6?e.charCode:event.keyCode;
var keycan=false;

// riabilita queste righe se vuoi vedere il
// codice del tasto
// inizio
/*
if(keyis){
alert("key code (NS/IE): "+keyis);
} else {
alert("char code (solo NS): "+charis);
}
*/
// fine

if(obj.id=="testo0"){
if(ns6){
if(keyis==0){ // tasti "a"..."z",":",".",etc
switch(charis){
// aggiungere prima dell'ultimo
// case i codice degli altri
// tasti come: "case <numero>:"
// vedi sotto per IE
case 58:{ // ':'
keycan=true;
}
}
} else {
switch(keyis){
case 13:{ // INVIO
keycan=true;
}
}
}
if(keycan){
e.preventDefault();
}
} else { // IE
switch(keyis){
case 13: // ':'
case 58:{ // INVIO
event.returnValue=false;
}
}
}
}
}

'bye
Marco
21 anni fa
Permalink
...
grazie Agostino per i Tuoi consigli,
ma nel frattempo ho cercato vie alternative ed ho risolto con controlli PHP.
preg_match.
ho limitato questo tipo di carattere con codice PHP.
che se non erro (l'ho letto da qualche parte nel NG) è meglio rispetto ai
JAVASCRIPT, in quanto i JAVASCRIP agiscono dal lato client, mentre il PHP
dal lato SERVER, quindi sarebbe sufficiente disabilitare JAVA per ignorare
completamente tali controlli!

giusto ?

;-)
buona serata,

Marco.
Agostino De Matteis
21 anni fa
Permalink
Post by Marco
grazie Agostino per i Tuoi consigli,
Prego.
Post by Marco
ho limitato questo tipo di carattere con codice PHP.
che se non erro (l'ho letto da qualche parte nel NG) è meglio rispetto ai
JAVASCRIPT, in quanto i JAVASCRIP agiscono dal lato client, mentre il PHP
dal lato SERVER, quindi sarebbe sufficiente disabilitare JAVA per ignorare
completamente tali controlli!
giusto ?
Quasi Disabilitando "JavaScrip", Java ha nulla a che fare con
Javascript.
Potendo fare controlli anche dal lato server e' sempre meglio farli in
ogni caso. Ad esempio, non e' detto che i dati che vengono passati
allo script sul tuo server siano in arrivo dalla tua form, quindi non
puoi considerarli "sicuri", al massimo puoi sperare che lo siano :-)

'bye

Loading...