我正在构建一个 jQuery 表单验证插件。该脚本使用 title 属性来标记输入字段。这导致将输入密码换成输入文本,以便字段标题可读。
$(FormID).find('input:password').each(function() {
$("<input type='text'>").attr({ name: this.name, value: this.value, title: this.title, id: this.id }).insertBefore(this);
}).remove();
当我单击密码输入框时,它按预期工作。以下代码将文本输入替换为密码输入,删除标签,应用适当的样式和焦点。
$(":input").focus(function(){//Clears any fields in the form when the user clicks on them
if ($(this).hasClass("va") ) {
$(this).val('');
$(this).removeClass("va").addClass('focused');
}
});
$(':input[title]').each(function() {//Add the title attribute to input fields and disappear when focused
if($(this).val() === '') {
$(this).val($(this).attr('title'));
}
$(this).focus(function() {
if($(this).val() == $(this).attr('title')) {
$(this).val('').addClass('focused');
}
if ($(this).attr('id')=="pass1" || $(this).attr('id')=="pass2") {
$("<input type='password'>").attr({ name: this.name, title: this.title, id: this.id }).insertAfter(this).prev().remove();
$("#"+$(this).attr('id')).focus().addClass('focused');
}
});
$(this).blur(function() {
if($(this).val() === '') {
$(this).val($(this).attr('title')).removeClass('focused');
}
if ($(this).attr('id')=="pass1" || $(this).attr('id')=="pass2") {
$("<input type='text'>").attr({ name: this.name, value: this.value, title: passtitle, id: this.id }).insertAfter(this).prev().remove();
$("#"+$(this).attr('id')).blur().removeClass('focused');
}
});
});
当用户在焦点输入框外单击时,模糊功能不会触发。如何让它像其他表单元素一样模糊?