繁体   English   中英

HTML onkeypress 在 HTML 工作,但不通过 JavaScript function 在 iOS

[英]HTML onkeypress works in HTML but not through JavaScript function on iOS

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

我有一个输入字段,我想将其限制为仅输入数字。 type="number"在计算机和我的 android 手机上工作正常,但在 iOS 上失败,我仍然可以在其中输入文本。 我在网上四处寻找,找到了输入字段的解决方案:

 <input onkeypress="return event.charCode >= 48 && event.charCode <= 57" id="priceInput" type="text">

它适用于我迄今为止尝试过的所有设备。 但是,我想将此代码用于许多输入字段,并在按下这些输入字段中的键时做更多的事情。 因此,我想在单独的文件中将其作为 JavaScript function 运行。 我发现这个答案看起来很有希望并且适用于 android 和桌面:

 function isNumber(evt) { evt = (evt)? evt: window.event; var charCode = (evt.which)? evt.which: evt.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } return true; }
 <input type="text" onkeypress="return isNumber(event)" />

但是,这在 iOS 上仍然失败,我仍然可以输入所有字符。

问题

  1. 如何将输入字段限制为仅接受 iOS 手机上的号码?
  2. iOS 是否有一些阻止功能在 onkeypress 上运行的功能?

您找到的代码段很旧,并且使用了whichkeyCode属性,这两个属性都已弃用。

而是使用code和/或key属性来确定按下了哪个键盘按钮。

注意:使用此方法,您必须将要为输入启用的每个键列入白名单。

由于您使用的是text输入,请考虑使用inputmode属性强制移动用户使用特定的键盘,例如显示数字的数字键盘。

 const input = document.querySelector('input'); input.addEventListener('keydown', isNumber); const allowedKeys = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'Backspace']; function isNumber(event) { if (.allowedKeys.includes(event.key)) { event;preventDefault(); } }
 <input type="text" inputmode="numeric" />

编辑:或者,您可以使用根据输入value的变化触发的input事件。 无论输入方式(键盘、鼠标等)如何,都会触发此事件。 下面的代码片段将在键入时用空字符串替换任何不是数字的内容。

 const input = document.querySelector('input'); input.addEventListener('input', isNumber); function isNumber(event) { event.target.value = event.target.value.replace(/[^0-9]/g, ''); }
 <input type="text" inputmode="numeric" />

function isNumber(e) {
    event = e.value;
    if(event = ""){
        console.log("empty")
    }


    return true;
}
<input type="text" onkeypress="return isNumber(event)" />
问题未解决?试试本站强大的搜索功能,搜索: HTML onkeypress 在 HTML 工作,但不通过 JavaScript function 在 iOS
onkeydown / onkeypress html和javascript

[英]onkeydown / onkeypress html and javascript

自从我开始使用Web语言(HTML,JavaScript,PHP)以来已经有一个月了,今天我被要求创建一个订阅页面。...如果必须字段,我能够将输入文本框的颜色更改为红色。是空的,问题是:当我在其中键入某些内容时,当我单击某个键时,我希望它再次变为白色...这是我的测试代码(一个了解某些命令如何 ...

通过onkeypress限制某些字符的输入

[英]Restrict input for some characters through HTML onkeypress

如果用户尝试键入某些字符(例如空格),我试图限制用户的输入。 为此,我找到了这篇文章。 但是我想通过HTML的onkeypress属性来实现。 面临的问题是,如果我指定函数返回false,则什么也不会发生,但是如果我在HTML的属性中返回false,则不会发生输入。 我不明白我在 ...

当我调用 javascript function 时,html onkeypress 的操作很奇怪,如何正确读取此处的输入?

[英]The html onkeypress is acting weird when I call a javascript function, How to properly read the input here?

我们正在制作一个网站来玩和解决数独问题。 为此,我们希望在您按下数字时运行 javascript function。 但是 onkeypress 调用表现得很奇怪。 它确实提供了您要更改的单元格编号,但在按键时看不到输入本身,除非您按两次。 (?)或输入。 它如何同时正常工作? 如果您想尝试,也 ...

Javascript验证onkeypress函数

[英]Javascript validation onkeypress function

在Web表单中,我有多个字段,每个字段都有一些唯一的验证,例如电话和邮政编码只有数字,并且某些字段不允许特殊字符。 那么,如何验证每个字段? 现在我验证像 在某些情况下,我需要允许一些特殊字符,例如 和HTML表单 如何减少我的JS代码。 我可以为此获取任何JS ...

使用onkeypress检测被按下的箭头(HTML和Javascript)

[英]Using onkeypress to detect up arrow being pressed (HTML and Javascript)

我一直在尝试编写没有Jquery的乒乓球游戏(来自软件设计老师的挑战),并且我正计划使用onkeypress来移动拨片。 但是,我不确定如何将特定键附加到事件处理程序中指定的函数。 它不是非常相关,但这是我的代码: HTML: 使用Javascript: 最后,完整 ...

Javascript 函数适用于 JSFiddle 但不适用于我的 HTML 文档?

[英]Javascript function works on JSFiddle but not in my HTML document?

所以,我在这里找到了一个我想在这个网站上使用的代码/函数: stackoverflow 然后我从第二个答案中复制了代码,做了一些小改动并测试了它是否真的有效,我发现它没有。 链接中的所有功能都适用于 JSFiddle tho,但在我的 html 文档中没有一个对我有用。 我做了&lt;脚本&gt ...

Javascript代码可在控制台中使用,但不能在HTML中使用(单击功能)

[英]Javascript code works in console but not HTML (Click Function)

上面的代码在插入google chrome控制台时有效-它显示了“ hello”的下拉列表-我想做的是使用以下代码在单击整个表格行时打开一个下拉列表 这是我要激活的下拉菜单 实际上,当我单击该行时,确实看到单击了按钮,但是下拉菜单没有切换。 切换下拉菜单的最佳方法是什么(如果 ...

暂无
暂无

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

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