javascript - 如何使文本框只接受 0-10 之间的数字,并且只接受小数部分的 0.5?

标签 javascript html input html-input

我有一个文本框,用户只能输入 0-10 之间的数字,允许的小数部分为 0.5 因此可以输入 0 或 0.5 或 1.5 或 4 等,仅此而已。 在这里我可以添加所有数字:

<script>
  function handleChange(input) {
    if (input.value < 0) input.value = 0;
    if (input.value > 10) input.value = 10;
  }
</script>
<input type="text" onchange="handleChange(this);" />

我需要在错误输入时发出警报并重置该文本框。

最佳答案

扩展@Vishnu Badhoriya 的评论,我们也可以做这样的事情:

HTML

<input id="number" type="number" min="0" max="10" step="0.5" onchange="roundHalf(this.value)">

JS (jQuery)

function roundHalf(num) {
  if (num > 10) {
    $('#number').val(10);
  } else if (num < 0) {
    $('#number').val(0);
  } else {
    $('#number').val(Math.round(num*2)/2);
  }
}

您也可以采用非 jQuery 方法,但我选择这样做只是因为易于演示。这将确保用户无法输入自己的值。

查看此处的 CodePen 以查看其实际效果:
https://codepen.io/anon/pen/RBoJGB

编辑:忘记实现另一个约束,0 <= num <= 10。将其添加到代码片段中。

关于javascript - 如何使文本框只接受 0-10 之间的数字,并且只接受小数部分的 0.5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51435450/

相关文章:

javascript - 如何在for循环中循环 promise 并在满足条件时中断

javascript - 自定义 CSS 复选框 jQuery 诱导的 "checked"属性在视觉上不显示 "check"复选框

php - 日期和时间验证(PHP 和 MySQL)

javascript - Angular.js 和 DAO 模式

javascript - 如何删除标记 googlemap $.getjson

javascript - canvas.drawImage() 仅渲染源图像的上半部分

javascript - 未填充空白时 Vuetify 步进器警报消息

css - 输入标签尺寸较大且输入标签中的文本垂直居中

mysql - Base64 作为清理 Mysql 用户输入的方法

javascript - 页面加载后如何从客户端正确获取 SQL 数据