HTML 只允许 <input type="number"> 中不带点 (.) 的数字 [重复]
Posted
技术标签:
【中文标题】HTML 只允许 <input type="number"> 中不带点 (.) 的数字 [重复]【英文标题】:HTML allow only number without dot (.) in <input type="number"> [duplicate] 【发布时间】:2020-12-16 09:29:35 【问题描述】:HTML
<input type="number" required="" pattern="\d*" id="mobile">
jQuery
var letters = /^[0-9]+$/;
var mobile_backup="";
$(document).ready(function()
$("#mobile").on("input", function()
var mobile_value=$(this).val();
if(mobile_value==="")
mobile_backup=mobile_value;
else if(mobile_value.match(letters)===null)
$(this).val(mobile_backup);
else
mobile_backup=mobile_value;
);
);
当前解决方案适用于所有设备(台式机、移动设备、平板电脑)。 是否有任何有效的方法可以在所有设备上运行?
我知道我可以使用数字模式。但我不想要警报。我只想允许没有点的数字。
【问题讨论】:
var letters = /^[0-9]+$/;
非常令人困惑!
【参考方案1】:
使用模式属性在 html 标签中添加正则表达式。 试试下面的代码:
<form action="home_page.php">
<label for="roll_no">Roll Number:</label>
<input type="number" id="roll" name="roll" pattern="^[\d]+$" title="Write your roll number"><br><br>
<input type="submit">
</form>
注意:
-
Safari 10(或更早版本)不支持输入标签的模式属性。
模式属性的验证不会阻止在字段中写入,但会阻止提交表单。
【讨论】:
已经提到了。 “我知道我可以使用数字模式。” 为什么要把\d
放在一个字符类里,这没有意义。
@Toto 用于在某些设备中仅打开数字键盘。对我来说,在 iPhone 上,我用它来打开数字键盘。【参考方案2】:
试试step="any"
这允许小数点
【讨论】:
我要不带小数点。以上是关于HTML 只允许 <input type="number"> 中不带点 (.) 的数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
css如何实现只设置type为text的input元素的样式