繁体   English   中英

在iOS上动态限制数字输入中的特殊字符

[英]Dynamically restrict special characters in number input on iOS

我见过很多与此类似的问题,但不是我要找的问题。如果我错过了,很抱歉。

因此,我为在iOS UIWebView和移动Safari中运行的HTML应用程序提供了一系列数字输入。 他们只需要接受数字,而不接受特殊字符或字母,并且必须验证为最大值。

我目前正在使用e.which进行验证,大多数情况下都可以使用它,但是当然,一堆标点符号字符(尽管iOS上的不同)报告的键码与数字键相同,并且我在确定时遇到问题如果我不能允许他们输入,或者将它们显示在输入字段中,然后将它们剥离。

(不正确的代码和结构已删除。)

<input type="number" id="input-patients" value="1600" max="10000" min="0" />
<input type="number" id="input-pct_dropout" value="16" max="100" min="0" />
<input type="number" id="input-annual_dollars" value="275" max="500" min="0" />

JavaScript的:

$('.input').on('keydown', function(e){

    var charCode = (e.which) ? e.which : event.keyCode;
    if (charCode > 47 && charCode < 59 || charCode == 8){
    // here a bunch of other stuff happens
       return true;
    }
    else{
       return false;
    }
});

我是否可以先检查特殊字符而不先将它们显示在输入字段中,然后再将它们从字符串中删除?

提前致谢。

所选输入元素的onkeyup写事件:从输入框中获取值,然后检查是否为数字? (如果是,则isNAN(val)返回false并停止进一步处理),否则继续执行下一个调用递归函数turnToInt的步骤,并使用该函数返回的有效INT设置此输入框的值;

turnToInt函数:检查有效数字(如果是,则返回该数字或从val中删除最后一个字符,并对其进行调用以进行进一步验证,最后返回有效的INT数字);

$(".select_object").keyup(function() {
      (val = $(this).val()) && isNaN(val) && $(this).val(turnToInt(val))
    });

function turnToInt(val) {
    return isNaN(val) ? turnToInt(val.substr(0,val.length-1)) : val;
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM