【问题标题】:HTML allow only number without dot (.) in <input type="number"> [duplicate]HTML 只允许 <input type="number"> 中不带点 (.) 的数字 [重复]
【发布时间】: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]+$/; 非常令人困惑!

标签: javascript html jquery regex validation


【解决方案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>

注意:

  1. Safari 10(或更早版本)不支持输入标签的模式属性。
  2. 模式属性的验证不会阻止在字段中写入,但会阻止提交表单。

【讨论】:

  • 已经提到了。 “我知道我可以使用数字模式。”
  • 为什么要把\d放在一个字符类里,这没有意义。
  • @Toto 用于在某些设备中仅打开数字键盘。对我来说,在 iPhone 上,我用它来打开数字键盘。
【解决方案2】:

试试step="any" 这允许小数点

【讨论】:

  • 我要不带小数点。
猜你喜欢
  • 1970-01-01
  • 2016-03-07
  • 1970-01-01
  • 2014-02-06
  • 2016-12-09
  • 1970-01-01
  • 2014-05-04
相关资源
最近更新 更多