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

时间:2011-07-29 09:59:56

标签: forms validation html5

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

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

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

1 个答案:

答案 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>');
});