在验证输入字段之前引发HTML5表单中的事件.

Joa*_*ela 5 forms validation html5

在HTML5表单中的字段验证之前和提交此表单之前是否有任何事件?

AFAIK,提交事件是在提交表单之前提出的,但是在验证步骤之后,这个对我来说太晚了.

更新:我有一个带有"必需"属性的textarea,如果用户有JS,我想用HTML编辑器替换它.HTML编辑器将其内容与提交时的textarea同步(在验证步骤之后),因此对于浏览器,textarea始终为空.这就是我要求在验证之前触发事件的原因.将接受解决此问题的任何其他方式答案.

ale*_*kas 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>');
});
Run Code Online (Sandbox Code Playgroud)