我在网页上有一个HTML5表单,其中的电子邮件输入框中有占位文本。它工作得很好,我很喜欢本地验证!
但是我不确定如何最好地为旧版浏览器提供服务。我使用了一些JavaScript代码,将占位符文本复制并将其作为值打印。它运行良好,但表单验证失效,因为表单中有非电子邮件地址的文本。
我不想失去验证。有任何想法吗?
HTML
但是我不确定如何最好地为旧版浏览器提供服务。我使用了一些JavaScript代码,将占位符文本复制并将其作为值打印。它运行良好,但表单验证失效,因为表单中有非电子邮件地址的文本。
我不想失去验证。有任何想法吗?
HTML
<input id="email" type="email" placeholder="Enter your email address">
JavaScript(原型):
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'));
});
编辑:
如果支持占位符的浏览器忽略value属性,那不是很好吗?
编辑2:
不,我不想将输入类型设置为文本。这会将验证的行为从电子邮件语法更改为拼写检查。