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"> 中不带点 (.) 的数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

input表单只允许输入大于0的整数

css如何实现只设置type为text的input元素的样式

input只允许输入数字和小数

如何使 <input type="file"/> 只接受这些类型?

在 type=text Ionic 的离子输入中只允许数字

javascript控制input只允许输入数字