我的文本框、姓名、电子邮件、电话上有一个 html5 占位符。为了让它在 ie9 和更少的版本上工作,我有以下 javascript:
$(document).ready(function () {
if (!Modernizr.input.placeholder) {
$('[placeholder]').focus(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function () {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
**input.val(input.attr('placeholder'));**
}
}).blur().parents('form').submit(function () {
$(this).find('[placeholder]').each(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
})
});
}
});
问题是当页面加载时,默认情况下会以某种方式触发不显眼的验证并检查文本框的值,当然,由于这些值会显示错误标签: input.val(input.attr('placeholder')); 未经验证。(它在电子邮件字段中显示电子邮件文本)
我不明白为什么验证会在页面加载时触发,而不是在我通过按钮提交表单时触发。