【问题标题】:Display HTML5 client-side validation error bubbles after event.preventDefault在 event.preventDefault 之后显示 HTML5 客户端验证错误气泡
【发布时间】:2012-07-19 12:37:28
【问题描述】:

在使表单的默认行为无效后,我想显示 HTML5 客户端验证错误气泡。

我确实尝试了以下代码,但它不起作用。

有什么想法吗?

validateForm: function (event) {
    event.preventDefault();
    // some code
    console.log(this.$el.find('form')[0]); // it display the form I would like to validate
    this.$el.find('form')[0].checkValidity();
});

【问题讨论】:

  • 你试过返回false吗?
  • event.stopPropagation();??
  • 我试过 return false 它不起作用。
  • @Val using event.stopPropagation(); 我不需要使用 checkValidity 因为会显示错误气泡。但是我应该使用event.stopPropagation 而不是preventDefault 提交表单有什么区别?
  • @Val 我使用了 event.stopPropagation 并提交了一个重新加载页面的表单。但我不想要这种行为。所以我必须使用 preventDefault。

标签: javascript jquery html backbone.js validation


【解决方案1】:

您的关于 validateForm 的代码可以通过这种方式改进:

validateForm: function (event) {
    event.preventDefault();
    // some code
    event.currentTarget.checkValidity();
});

如果它不起作用,问题将与您如何调用 validateForm 函数有关。

如果您在Backbone.View 中,我想既然您使用的是“this.$el”,那么您应该以这种方式简单地编写事件对象:

events: {
    'submit form': 'validateForm'
    // 'click button': 'validateForm' // this way does not work
}

【讨论】:

    猜你喜欢
    • 2012-01-07
    • 2013-09-23
    • 2021-11-11
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2020-02-17
    • 1970-01-01
    相关资源
    最近更新 更多