Ver Mensaje Individual
  #10 (permalink)  
Antiguo 03/04/2015, 10:37
Avatar de Dafonz
Dafonz
 
Fecha de Ingreso: octubre-2009
Mensajes: 127
Antigüedad: 14 años, 7 meses
Puntos: 36
Respuesta: Comprobar campo solo si está activo

Segun yo Safari si soporta la validacion, pero no impide el submit.
Por lo que podrias hacer un workaround con javascript, algo como:

Código Javascript:
Ver original
  1. // se obtiene el formulario y el campo a validar
  2. var formulario = document.getElementsByTagName('form')[0],
  3.     campo = document.getElementsByTagName('input')[0];
  4.  
  5. // se quita validacion para que se comporte igual en todos los browser
  6. formulario.noValidate = true;
  7.  
  8. // se agrega listener en el submit y se checa por campo valido y campo activo
  9. formulario.addEventListener('submit', function(event) {
  10.         if (!campo.disabled && !event.target.checkValidity()) {
  11.             event.preventDefault();
  12.             alert('No Valido');
  13.         }else{
  14.            alert('formulario enviado');
  15.         }
  16.     }, false);

El required en el campo sigue siendo necesario, ya que es la forma de identificar si es valido con checkValidity.

Te dejo un fiddle como demo
http://jsfiddle.net/srLckfg3/

Puedes agregar el disabled al campo y probar que cuando esta inactivo se manda sin validar.