我一直在尝试在 keyup 上的表单字段旁边使用视觉复选标记或 X 来滚动我自己的表单验证。我遇到的一个问题是,无论是否出错,它都会在 keyup 被触发后产生一个新的跨度。因此,我尝试在每次按键后删除所有元素,以便获得一个带有成功或错误消息的跨度。这目前有效,但我想知道是否有更好的方法来做到这一点:
jQuery('input#firstname').keyup(function () {
var text = jQuery(this).val();
if (check_text(text) === false || text === '') {
$(this).nextAll().remove();
jQuery(this).after('<span class="form-error">Error</span>');
} else {
$(this).nextAll().remove();
jQuery(this).after('<span class="form-success">Success</span>');
}
});
/* Functions */
function check_text(text) {
var regex = /^[a-zA-Z0-9- ]*$/;
return regex.test(text);
}
工作示例:http: //jsfiddle.net/XBaKQ/1/