我想在没有表单发布的情况下实现类似的功能,因为它会重定向页面。

这是我的代码
<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>Run Code Online (Sandbox Code Playgroud)
我做了一些研究,它似乎必须通过表单发布来触发。可以使用 jquery 功能按钮单击触发 html5 验证吗?
唯一的方法是使用 JavaScript 代码
\n\n试试这个代码
\n\n网页
\n\n<input id="amount" maxlength="7" type="text" />\nRun Code Online (Sandbox Code Playgroud)\n\nJavaScript
\n\n$("#amount").on("keyup", function(){\n var valid = /^\\d{0,4}(\\.\\d{0,3})?$/.test(this.value),\n val = this.value;\n\n if(!valid){\n alert("Please enter price with decimal format, eg x.xx!");\n this.value = val.substring(0, val.length - 1);\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n尝试第二个解决方案:
\n\nhtml
\n\n<input id="amount" maxlength="7" type="text" />\nRun Code Online (Sandbox Code Playgroud)\n\nJS
\n\n$("#amount").on("change paste keyup", function(){\n var valid = /^\\d*(\\.\\d*)?$/.test(this.value),\n val = this.value;\n\n if(!valid){\n alert("Please enter price with decimal format, eg x.xx!");\n this.value = val.substring(0, val.length - 7);\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n结果:\n http://jsfiddle.net/vY39r/866/
\n