Non si colora il campo alert

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Con questo codice quando esce la finestrina alert, lo sfondo del campo si colora, poi però quando clicco su Ok per chiudere l'alert, lo sfondo campo ridiventa bianco, devo fare in modo che lo sfondo rimanga colorato fino a quando ci digito dentro

PHP:
function contaValid(val) {
max=4
if (val.validator.value.length > max) {
val.validator.value = val.validator.value.substring(0,max)
rest = 0
val.validator.style.borderColor='black'
val.validator.style.backgroundColor='#d8ecff'
alert("VALIDATORE: Max 4 caratteri !");
} 
else{
rest = max - val.validator.value.length
}
 }


        	
<input type="text" name="validator" id="validator" onkeyup="contaValid(this.form);" onblur="this.value=ignoreSpaces(this.value)" />
 
Bruttissimo l'alert
non è meglio mettere un messaggio vicino all'input?
HTML:
<script>
    function contaValid(val) {
        max=4
        if (val.validator.value.length > max) {
            val.validator.value = val.validator.value.substring(0,max);
            val.validator.style.borderColor='black';
            val.validator.style.backgroundColor='#d8ecff';
            document.getElementById('max').innerHTML = "Max 4 caratteri !";
        } 
        else{
            val.validator.style.borderColor='';
            val.validator.style.backgroundColor='';
            document.getElementById('max').innerHTML = "";
        }
    }
</script>

<form>
    <input type="text" name="validator" id="validator" onkeyup="contaValid(this.form);"/>
    <span id="max"></span>
</form>

a me cmq rimane colorato con FF e IE
 
Con questo codice quando esce la finestrina alert, lo sfondo del campo si colora, poi però quando clicco su Ok per chiudere l'alert, lo sfondo campo ridiventa bianco, devo fare in modo che lo sfondo rimanga colorato fino a quando ci digito dentro

PHP:
function contaValid(val) {
max=4
if (val.validator.value.length > max) {
val.validator.value = val.validator.value.substring(0,max)
rest = 0
val.validator.style.borderColor='black'
val.validator.style.backgroundColor='#d8ecff'
alert("VALIDATORE: Max 4 caratteri !");
} 
else{
rest = max - val.validator.value.length
}
 }


        	
<input type="text" name="validator" id="validator" onkeyup="contaValid(this.form);" onblur="this.value=ignoreSpaces(this.value)" />
Strano con ff15 non va inoltre dopo il 4 carattere sposta tutto il div.

Cos'è quello che dicevi di mettere un messaggio vicino all'input? Se è meglio si può fare
 
Cos'è quello che dicevi di mettere un messaggio vicino all'input?
nel codice che ho postato c'è
incollalo in una pagina html vergine e vedi l'effetto
 
Ho trovato l'errore, se però lo tolgo i campi rimangono sempre colorati dopo l'alert

è questo

<form method="post" name="mioform1" id="mioF" action="scrivimi2.php" onkeyup="highlight(event)" onsubmit="return (controlla1() &amp;&amp; parolaNo() &amp;&amp; caratteriNo());">

PHP:
//Colora lo sfondo del campo nel quale si sta digitando 
function highlight(e) {
eventobj=ns6? e.target : event.srcElement
if (previous!='') {
if (checkel(previous))
previous.style.borderColor=''
previous.style.backgroundColor=''
previous=eventobj
if (checkel(eventobj))
eventobj.style.borderColor=highlightcolor
eventobj.style.backgroundColor=highlightcolor
}
else {
if (checkel(eventobj))
eventobj.style.borderColor=highlightcolor
eventobj.style.backgroundColor=highlightcolor
previous=eventobj
}
 }
var highlightcolor="white"                      //------->Colore di sfondo
var ns6=document.getElementById&&!document.all
var previous=''
var eventobj
//Regular expression to highlight only form elements
var intended=/INPUT|TEXTAREA|SELECT|OPTION/
//Function to check whether element clicked is form element
function checkel(which) {
if (which.style&&intended.test(which.tagName)) {
if (ns6&&eventobj.nodeType==3)
eventobj=eventobj.parentNode.parentNode
return true
}
else
return false
}
 

Discussioni simili