Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Aiuto script che simula behavior

    Ciao ragazzi
    devo rendere un sito compatibile con firefox, che però non supporta "behavior" nei css.

    Nel css per ogni tipo di campo form c'è l'invocazione di un certo behavior che gestisce i controlli su quel campo (lo so fa schifo come soluzione, non l'ho fatta io )
    codice:
    .typeMoney{
    	behavior: url(<%=request.getContextPath()%>/theme/money.htc);
    }
    
    .typeInt{
    	behavior: url(<%=request.getContextPath()%>/theme/numberInt.htc);
    	
    }
    Negli htc sono presenti sempre dei codici javascript
    Esempio di HTC numberInt.htc
    codice:
    <script type="text/javascript">
    attachEvent("onkeypress",keyEvent);
    function keyEvent(event){
    	if (window.event.keyCode == 13){
    	}
    	else if ((window.event.keyCode < 48) || (window.event.keyCode >57))
    	{
    
    		window.event.returnValue = 0;
    		alert(errorNumberOtherKey);
    	}
    }
    
    </script>
    Ho tentato un workaround via css ma le possibili soluzioni non funzionano. Pensavo di fare tutto via javascript con ogni campo che ha onClick(...). Però visto che i campi del form vengono generati dinamicamente e quindi non posso direttamente specificare onClick(checkIntero()), mi servirebbe un javascript che smista a varie funzioni a seconda del tipo di campo, ma come fare "se l'elemento chiamante ha la classe typeInt allora chiama la funzione keyEvent ?"

    Spero di non essermi troppo ingarbugliata nella spiegazione
    grazie mille
    Andre

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Per il poco che ho capito, forse con una cosa del genere puoi risolvere:
    codice:
    <script type="text/javascript">
    onload=function(){
    //rilevo la collezione degli input presenti nel documento
    var inputText = document.getElementsByTagName("input")
    //ciclo tutti gli elementi input
    for(var i=0; i<inputText.length; i++){
    //verifico che sia un input text con classe typeMoney
    	if (inputText[i].type=="text" && inputText[i].className=="typeMoney"){
    //qui ci metti quello che vuoi evento, avviso, etc....
    	}
    //verifico che sia un input text con classe typeInt
    	else if (inputText[i].type=="text" && inputText[i].className=="typeInt")
    	{
    //qui ci metti quello che vuoi evento, avviso, etc...
    	}
    }
    }
    
    </script>
    non l'ho testato.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie, mi sembra un buon punto di partenza, anche se mi sa che il capo vuole il controllo non appena uno riempie il campo e non tutto alla fine. Ad esempio se in un campo numerico inserisco "f" mi deve dare subito errore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.