Newsgroup: it.comp.lang.javascript
Titolo: aiuto script Date separator

salve
ho una funzione di separatore data che funziona perfettamente in IE ma 
non funziona in FF, non sono preparato, ho fatto ricerche ma non trovo 
sulozione. Qualcuno potrebbe aiutarmi cortesemente??
la funzione è questa.
function DateSeparator()
  {
	var s = new String(window.event.srcElement.value);
	var val =0;
	window.event.returnValue = false
	if ( window.event.ctrlKey  && (window.event.keyCode ==67 || 
window.event.keyCode ==86  ) ) //Control+c Control+v
	{
		window.event.returnValue = true;
		return;
	}
	if ( window.event.keyCode >= 48 && window.event.keyCode <= 57  )
	{
		val= new Number (window.event.keyCode) - 48;
		window.event.returnValue = true
	}
	if ( window.event.keyCode >=96 && window.event.keyCode <= 105  )
	{
		val =  new Number (window.event.keyCode) - 96;
		window.event.returnValue = true
	}
	if ( window.event.keyCode ==111 &&  s.length>6) // '/'
	{
		window.event.returnValue = true
		return;
	}
	if ( window.event.keyCode <=46 )
	{
		window.event.returnValue = true
		return;
	}
	if (s.length==1 )
	{
		window.event.srcElement.value+= val;
		window.event.srcElement.value+="/";
		window.event.returnValue = false
	}
	if (s.length==4 && val>-1)
	{
		window.event.returnValue = false;
		window.event.srcElement.value+= val;
		window.event.srcElement.value+="/";
	}
  }
Grazie mille

 window.event.keyCode ==86  ) ) //Control+c Control+v
Che brutta roba andare a testare il keyCode!
Decisamente pericoloso e impreciso (se uno per fare copia e incolla 
utilizza il menu contestuale al tasto destro del mouse per esempio?)
Devi prendere il valore del campo e lavorare su quello.
Lascia perdere il keycode.

Roberto Montaruli ha scritto:

tieni conto che è un campo data... il key code mi serve per i 
controlli... almeno da inesperto mi sembrano utili, lavorare solo sulla 
lunghezza del valore inserito (se è quello che intendi) mi porta ad 
avere / in punti sbagliati.

Pit ha scritto:

No, non hai capito che cosa intendo dire.
Il controllo sul formato del campo e' sacrosanto e fai benissimo a 
preoccuparti.
Quello che non va bene e' pretendere di farlo durante la digitazione e 
usando il keyCode.
Il modo corretto per testare il formato di quanto digitato e' all'uscita 
del campo, sull'intera stringa contenuta, o ancora meglio, quando 
effettui il collect di tutti i campi.
Perche' oltre al separatore, vorrai anche testare che il valore inserito 
sia una data valida, con il giorno e il mese coerenti tra loro.

 	var s = new String(window.event.srcElement.value);
mi fermo qua:
 - i browser Gecko passano l'oggetto event alla function; esempio:
 
http://www.criosoftware.it/default58.aspx
 - srcElement non esiste nei browser Gecko, ma esiste target.
Comunque sia, dici di non aver trovato nulla; eppure cercando "srcElement
site:
mozilla.org
" trovi subito questa pagina:
http://developer.mozilla.org/it/docs/Migrare_applicazioni_da_Internet_Explorer_a_Mozilla
che ti risolve questo e altri problemi


si quello che dici già lo faccio.... questo voleva essere un 
"surplus".... grazie.

Cristiano Larghi ha scritto:

grazie come dicevo prima sono proprio un nubbio... stavo programmando in 
php e poi ho voluto integrare javascript per i controlli in quanto con 
php ogni volta dovevo reinviare il modulo... ho cercato male...per 
questo non trovavo nulla.
Grazie ancora