Newsgroup: it.comp.lang.javascript
Titolo: Evento immediato sul cambio di un <input>

Ciao,
Piccolo problema:
Ho un <input> che deve "reagire" subito quando vuoto. Per la stastiera, ho 
intercettato onkeyup e fin qui...tutto ok.
Vorrei fare lo stesso anche nel caso in cui, qualcuno selezionasse il testo 
col mouse e lo cancellasse sempre utilizzando il mouse (tasto dx, cut)....
Qualche suggerimento?
Per la cronaca, vorrei che l'evento fosse immediato e non quindi su onblur e 
simili.....
Ciauz,
HyP 

 Ciao,


Può andare qualcosa tipo questo:
onclick="this.form.aa.value=''"
da mettere nell'input?
-- 
    * b *         Il tuo post è privo del MIME, attivalo in Outlook Express.
  *   y   *       Per impostare _correttamente_ Outlook Express ed OE-QuoteFix
*   Piero   *                        puoi consultare:
http://wiki.news.nic.it/GuidaNr_2fOutlookExpress?action=recall&date=1172714805
 

 da mettere nell'input?
Mi sa di no....dopo il 'cut' non credo venga rigenerato l'evento onclick. 
Cmq, farò delle verifiche....
Ciauz,
HyP 

 onclick. Cmq, farň delle verifiche....
Allora usa "onmouseover". ^_^
-- 
    * b *         Il tuo post č privo del MIME, attivalo in Outlook Express.


 Allora usa "onmouseover". ^_^
Nemmeno questo va bene, purtroppo.
Scegliendo 'Cut' nel menų contestuale del mouse, il puntatore č giā fuori 
dall'area sensibile, ergo: onmouseover non scatta pių..
Ciauz,
HyP 

 fuori dall'area sensibile, ergo: onmouseover non scatta più..
Sarà che non ho capito. :-/
Mi spieghi come riesci a tagliare il testo dell'input usando il clic DX
del mouse _senza andare sopra all'input_? :-?
-- 
    * b *         Il tuo post è privo del MIME, attivalo in Outlook Express.


 del mouse _senza andare sopra all'input_? :-?
Chiarisco:
ovviamente vado sull'input (e scatta l'evento onmouseover). Ora, premendo il 
tasto dx del mouse potrei fare un 'cut': il punto è che mentre si naviga nel 
menù contestuale, il puntatore esce dall'input e quindi l'eventuale 
eliminazione del testo non verrebbe da quest'ultimo recepita (non si 
attiverebbe più onmouseover).
Ciauz,
HyP 

 onmouseover).
Per capirci...
Prima di questo periodo, forse intendevi scrivere:
tengo il puntatore sull'input, scrivo di nuovo del testo, lo seleziono
col mouse, click DX, il puntatore esce dall'input...
Tuttavia basta aggiungere un altro evento. ^_^
Questo (provato con IE, FF, OP) fa quello che vuoi tu, sia che l'input
contenga già del testo, sia scrivendocelo:
<html><head>
<script type="text/javascript">
function cancella() {
document.getElementById("aa").value="";
}
</script>
</head>
<body>
<input id="aa" onmouseover="cancella();" onmousedown="cancella();" type="text" value="pippo" />
</body></html>
Se hai già provveduto ad inibire la tastiera, dovresti essere a posto. :-)


 </body></html>
Questo esempio cancella tutto. Nel mio caso ho un semplice input che voglio 
funzioni in maniera "tradizionale" con in piů la seguente regola:
- Lo svuotamento dell'input deve generare un evento.
Come e possibile svuotare l'input? Nei seguenti modi:
1) Mediante tastiera, con Del o Backspace. (intercetto onkeyup e controllo 
il value, OK)
2) Mediante tastiera, selezionando il testo e premendo Ctrl-X (Ctrl-X non fa 
scattare onkeyup --> come mi accorgo che l'input č vuoto?)
3) Mediante mouse, selezionado il testo e poi Cut dal menů contestuale (come 
mi accorgo che l'input č vuoto?)
Hai soluzioni per i casi 2 e 3 ?
Ciauz,
HyP 

 Hai soluzioni per i casi 2 e 3 ?
Al 2 ho già risposto, per il 3 prova questo:
<html><head>
<script type="text/javascript">
function cancella() {
var xx = document.getElementById("aa").value;
if (confirm("il testo è: "+xx)) {
document.getElementById("aa").value="";
return false; }
}
</script>
</head>
<body>
<input id="aa" name="bb" onmouseover="cancella();" onmousedown="cancella();" type="text" value="pippo" />
</body></html>
Spero di aver capito la tua richiesta (se non altro hai qualcosa da poter modificare),
ma se così non fosse, aspetta che altri intervengano perché io non ho altri argomenti.
