在HTML5表单中的字段验证之前以及提交此表单之前是否有任何事件被提出?
AFAIK,提交事件是在提交表单之前提出的,但是在验证步骤之后,这个对我来说太晚了。
更新:我有一个带有“required”属性的textarea,如果用户有JS,我想用HTML编辑器替换它。 HTML编辑器将其内容与提交时的textarea同步(在验证步骤之后),因此对于浏览器,textarea始终为空。这就是我要求在验证之前触发事件的原因。任何解决这个问题的方法都会被接受。
答案 0 :(得分:8)
不,在验证发生之前没有事件会触发。只有invalid
事件在验证无效字段后触发,但在显示验证UI之前(防止默认设置阻止显示浏览器验证UI)。
如果要同步两个字段,则必须使用两个事件。第一个是DOMContentReady
,第二个是change
事件。
其他信息:如果隐藏了无效的字段元素,则浏览器无法向用户显示验证消息。您可以使用以下代码解决此问题(请注意,这假设您使用的是jQuery 1.6x和特殊结构):
$('textarea.wysiwyg').bind('invalid', function(e){
//remove validation bubble
e.preventDefault();
//implement your own validation UI
$(this).next('div.wysiwyg').after('<p class="error">'+ $.prop(this, 'validationMessage') +'</p>');
});