textarea中的移动数字键盘[0-9]

Mobile numeric keyboard [0-9] in textarea

是否可以在textarea框中打开手机数字键盘?

典型的 pattern="[0-9]*" 似乎不适用于文本区域,我在其他任何地方都找不到关于此的任何其他信息。我正在尝试在 angular 应用程序中使用它,那么有什么方法可以在默认键盘上防止默认()并以某种方式触发数字键盘吗?

例如

<textarea id="searchBox" pattern="[0-9]*" ng-model="searchParams.searchString" rows="3" ng-blur="formatSearch()"></textarea>

不能使用输入法吗? 喜欢

<input name="numbers" type="tel">

然后将输入设置为像文本区域一样的样式。 我对文本区域一无所知。

遗憾的是,textarea 还无法做到这一点。我对此进行了详尽的搜索,并尝试了多种模式和类型等等,但 textarea 不支持它。

有两种可能的解决方案,要么您可以创建自己的 html5 自定义软键盘,然后应用一个技巧来不打开默认键盘。

或者(我认为更优雅)使用类型为 number 或类型 tel 的普通输入并附加一个 onkeyup listerer。当按下 enter 键时,您将该行处理到您的文本区域并清理并重新聚焦输入。

文本区域可以通过 php 验证,但不能在 html 中验证。下面是我验证文本区域的方法,

$value=$_POST['value from textarea']
if(preg_match("/^[A-Za-z0-9]+$/", $value != 1) {
    echo"oops";
} else {
    echo "success";
}

您可以在textarea中使用全局属性inputmode来改变Android或iPhone键盘。

<textarea inputmode="numeric"></textarea>

MDN 网络文档: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode