Tengo un formulario HTML5 en mi página con una entrada de correo electrónico que tiene texto de titular de lugar en él. ¡Funciona maravillosamente y me encanta la validación nativa!HTML5 formulario de reserva de marcador de posición con validación de formulario en el prototipo
No estoy seguro de cómo servir los navegadores antiguos mejor. Estoy usando un poco de javascript que copia el texto del marcador de posición y lo imprime como un valor. Funciona bien, pero luego la validación del formulario se desactiva porque hay texto que no es una dirección de correo electrónico en el formulario.
No quiero perder la validación ... ¿Alguna idea?
HTML
<input id="email" type="email" placeholder="Enter your email address">
JavaScript (Prototipo):
var Placeholder = Class.create({
initialize: function (element) {
this.element = element;
this.placeholder = element.readAttribute('placeholder');
this.blur();
Event.observe(this.element, 'focus', this.focus.bindAsEventListener(this));
Event.observe(this.element, 'blur', this.blur.bindAsEventListener(this));
},
focus: function() {
if (this.element.hasClassName('placeholder'))
this.element.clear().removeClassName('placeholder');
},
blur: function() {
if (this.element.value === '')
this.element.addClassName('placeholder').value = this.placeholder;
}
});
Event.observe(window, 'load', function(e){
new Placeholder($('email'));
});
EDIT:
¿No sería grande si navegadores que soporten marcador de posición ignoran el atributo de valor?
EDIT 2:
No, no quiero para establecer el tipo de entrada de texto. Eso cambiará el comportamiento de la validación de la sintaxis del correo electrónico a la revisión ortográfica.
¿Esta es la validación personalizada que está escribiendo o está utilizando un complemento de validación? – kinakuta
Ninguno, es la validación nativa del navegador. Lea aquí: http://diveintohtml5.org/forms.html – technopeasant
Estoy familiarizado con eso: asumí que estaba proporcionando su propia validación para navegadores antiguos, pero creo que estoy malinterpretando el problema tal como lo describe. Utiliza JavaScript para colocar el texto de marcador de posición en el campo de entrada, pero en los navegadores html5 compatibles, ¿esto hace que se active la validación porque en realidad no es una dirección de correo electrónico? – kinakuta