HTML5 验证检查输入大于 0

Dal*_*ang 3 html validation

我有一个应该大于 0的输入字段,我min="0.00000001"用来验证输入数字是否大于 0。

<input type="number" step="0.00000001" min="0.00000001" name="price" value="[%price%]" />
Run Code Online (Sandbox Code Playgroud)

由于我不想指定stepand min,我只想验证输入数字是否大于 0。

有没有更好的方法来比较输入?例如像input > 0min > 0

我正在寻找一种解决方案,但如果不使用step+就找不到解决方案min

只使用 html5,我们可以这样做吗?谢谢你的帮助

<input type="number" step="0.00000001" min="0.00000001" name="price" value="[%price%]" />
Run Code Online (Sandbox Code Playgroud)

Juk*_*ela 7

在没有 JavaScript 的纯 HTML5 中无法做到这一点。如评论中所述,pattern不能使用该属性。

但这可以使用简单的 JavaScript 代码处理,通过oninput属性调用,并使用setCustomValidity

<form method="post">
  <b>Number Input:</b>
  <input type="number" step="any" min="0"  name="number" value="" 
         oninput="check(this)" />
  <input type="submit" class="submit" value="Save" />
</form>
<script>
 function check(input) {
   if (input.value == 0) {
     input.setCustomValidity('The number must not be zero.');
   } else {
     // input is fine -- reset the error message
     input.setCustomValidity('');
   }
 }
</script>
Run Code Online (Sandbox Code Playgroud)