html - 无需表单发布即可触发 html5 验证

标签 html validation

我想在没有表单发布的情况下实现这样的目标,因为它会重定向页面。 enter image description here

这是我的代码

<form>
  <input type="number" step="any" min="0" required oninvalid="this.setCustomValidity('Please enter price with decimal format, eg x.xx .')">
  <button type="submit">submit</button>
</form>

我做了一些研究,它似乎必须通过表单发布来触发。可以通过单击 jquery 函数按钮触发 html5 验证吗?

最佳答案

在输入更改时设置自定义验证消息并拦截表单提交事件:

var form = document.querySelector('form'),
    input = document.querySelector('#input-price');

input.addEventListener("change", function (event) {
  if (!input.checkValidity() || !/^\d+(\.\d+)?$/.test(input.value)) {
    input.setCustomValidity("Please enter price with decimal format, eg x.xx .");
  } else {
    input.setCustomValidity("");
  }
});

form.addEventListener("submit", function (event) {
  event.preventDefault();
});
<form>
  <input id="input-price" type="number" step="any" min="0" required>
  <input type="submit">
</form>

input.checkValidity() 当输入值为数字时返回 true,如 2.11e10。然后正则表达式测试过滤掉最后两种情况(.11e10)。

关于html - 无需表单发布即可触发 html5 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37683676/

相关文章:

validation - 如何在抽象类级别提供值验证?

ruby-on-rails - rails 3 : using composed_of with validation causes ActiveRecord error

asp.net - 在asp.net中RequiredFieldValidator Text和ErrorMessage有什么区别?

javascript - 密码正则表达式 - 带有 unicode 标志的正则表达式中不允许原始大括号

javascript - d3.select 不追加

javascript - Angular : can't apply a filter to data loaded via $http

html - 为什么当根节点有一些样式时 fixed 不起作用?

html - css概念中div在div中垂直居中

c# - 我应该使用 CreditCardAttribute 来验证信用卡号吗?

html - Dreamweaver 模板和库的问题