Ver Mensaje Individual
  #11 (permalink)  
Antiguo 27/02/2009, 16:23
samy4ever
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Duda en "deselección"

Hola!

Vaya, me da vergüenza preguntar ya. Ya he arreglado el código cómo me habeis comentado:

Código:
function bordef(input, evento){
	var evento = window.event || evento; //Compatibilidad con IE

	if (evento.type == 'focus')
	input.className = "inputsin"; 
	
	if (evento.type == 'blur'){
		input.className = "inputsout";
		if (input.value.length > 0)
			comprovarName(input);
	}
}

function comprovarName(input)
{
		var alfanum = /^(\w)+$/;
		if (!alfanum.test(input.value))
			input.style.border = "thin solid red";
}
He cambiado el comprovarName(input.value) (he sacado el value) ya que sinó, después en el if de la expresión regular, no sabía como tirar atrás. Es decir, el input.className ahora va, pero sinó en realidad sería input.value.className. Por curiosidad, con el input.value, no podemos llegar al "input", o sí?

Lo que me lleva de cabeza es que ahora me funciona: cuando pones ''' (por ejemplo)en el nombre del remitente (donde lo estoy probando), se recuadra rojo. Vale, hasta aquí perfecto. El problema es que si lo soluciono, no me vuelve a poner el borde que toca, y no se el porqué.

Es curioso. Si después de ponerlo mal selecciono otra vez el campo (debería ponerse la clase inputsin, del primer if de todos, el del focus), me cambia el color de fondo (eso es lo que hace la clase inputsin, cambiar el fondo y el borde) pero NO el borde. Y aunque esté bien, me lo deja en rojo (es decir, que al hacer el inputsout... Me pone el fondo bien de nuevo, pero no el borde).

Alguna idea de por qué puede ser?
Siento ser tan pesado...

Muchas gracias!