【问题标题】:How to show number keyboard for a text input field in mobile application如何在移动应用程序中显示文本输入字段的数字键盘
【发布时间】:2023-03-29 06:42:01
【问题描述】:

我正在使用 Cordova + react js 构建一个 Android 应用程序,并且我需要在输入字段上呈现货币编号。当这个input field 获得焦点时,它会显示一个数字键盘。

用户输入一些数字后,它会将数字格式化为文本字符串。例如,如果用户键入394,333.2930,它将呈现为$394,333.293。格式化字符串对我来说没有问题。问题是如何为text 输入字段显示数字键盘。

我知道它适用于 number 类型的输入,但它不允许用户输入 , 或货币符号。同样使用数字输入字段,用户可以输入多个点.,我不希望这种情况发生。那么如何在Cordova 应用程序中为文本输入字段显示仅数字键盘?我不确定这是 Cordova 特定问题还是一般 Web 应用程序问题。

我尝试使用tel,但它仍然显示如下屏幕截图中的字符。它们在每个数字后显示为灰色字符。我怎样才能摆脱它们?

<input id="numberInput" type="tel" maxlength="6"/>

【问题讨论】:

    标签: javascript android reactjs cordova


    【解决方案1】:

    可能有多种方法,但我也有完全相同的情况,我正在做如下。使用type="tel" 并添加对keydown 事件的检查以处理不需要的字符,例如"#", "+", "*", ";", ",", "-"。下面是代码:

    HTML:

    <input id="numberInput" type="tel" maxlength="6"/>
    

    JS:

    // validation for targetSalary input
    var invalidChars = ["#", "+", "*", ";", ",", "-"];
    numberInput.addEventListener("keydown", function(event) {
      if (invalidChars.includes(event.key)) {
        event.preventDefault();
      }
    });
    

    希望对您有所帮助!

    更新:

    由于您更改了要求并且根据此新要求,您希望从键盘中隐藏特殊字符 对此要求的回答是您不能以正常方式隐藏键盘中的特殊字符也许您可以通过创建自己的自定义键盘来实现。

    【讨论】:

    • 我已经应用了您的解决方案,但它仍然显示键盘上的字符。
    • @ZhaoYi 是的,字符已显示,但用户无法输入。你想隐藏那些字符吗? 您无法隐藏它们。如果您想制作自己的自定义键盘。
    猜你喜欢
    • 1970-01-01
    • 2018-06-20
    • 2015-08-20
    • 2013-05-03
    • 1970-01-01
    • 2011-12-10
    • 2017-07-31
    • 2018-04-20
    • 2022-11-26
    相关资源
    最近更新 更多