如何使用 Javascript/JQuery 在移动浏览器中限制点运算符('.')

Posted

技术标签:

【中文标题】如何使用 Javascript/JQuery 在移动浏览器中限制点运算符(\'.\')【英文标题】:How to restrict dot operator('.') in mobile browser using Javascript/ JQuery如何使用 Javascript/JQuery 在移动浏览器中限制点运算符('.') 【发布时间】:2017-02-22 12:14:18 【问题描述】:

我正在开发一个移动网络应用程序,我需要使用“数字”类型的文本框。

<input type="number" name="Mileage" id="txtExample" onkeypress="javascript:return validateNumbers(event,'txtExample');"/>

我遇到的问题是我需要限制点 (.) 被输入到文本框中,我为此编写的 javascript 方法是:

function validateNumbers(evt, txtField)             
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    else if (charCode == 8)
        return true;            
    

. 的 charcode 是 46,但它每次都进入true。奇怪的是,在桌面网站上这段代码运行良好,但在移动浏览器(Chrome、IE)中运行时却无法运行。

我需要帮助,伙计们。此方法不适用于移动浏览器。提前致谢。

【问题讨论】:

为什么不使用 min 属性,这样就没有这个问题了? 相关:***.com/questions/31979619/… 您提出的问题是:How to restrict dot operator('.')。但是你的问题不就是How to restrict only integer in input type number吗???如果是这样,谷歌它 【参考方案1】:

看看这个例子

$("#txtExample").on("keypress",function(evt)
    var keycode = evt.charCode || evt.keyCode;
      if (keycode  == 46) 
        return false;
      
);

【讨论】:

此代码限制输入字段中的点。不多不少。看他的问题。如何使用 Javascript/JQuery 限制移动浏览器中的点运算符('.') @Rick Bronger,是的,我使用了相同的代码,但是一旦我在移动浏览器中运行它,它就不会返回 false。简单地说,我应该只允许用户输入 0 到 9 个数字。 当我在文本框中按点时,我无法捕捉到它的空白可能是因为如果输入类型 =“数字”?当我作为 type="text" 给出时它的工作。我希望它在“数字类型”中工作。 @Rick Bronger,感谢您发布小提琴示例,但我知道它在桌面浏览器中工作只需使用任何浏览器在移动设备中打开相同的jsfiddle.net/8nz11auz/4 链接,然后看看,我担心的是。您能否发表任何建议我如何在移动浏览器中实现这一目标。

以上是关于如何使用 Javascript/JQuery 在移动浏览器中限制点运算符('.')的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery/javascript 将文本插入 json [重复]

如何使用 JavaScript/JQuery 创建一个简单的地图 [重复]

如何使用 Javascript/jQuery 确定图像是不是已加载?

如何使用 Javascript/jQuery 确定图像是不是已加载?

UITapGestureRecognizer 在移出视图并返回后被忽略

如何使用 PHP 或 JavaScript/jQuery 禁用地址栏?