Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript keycode =/=字符码

Javascript keycode =/=字符码
EN

Stack Overflow用户
提问于 2009-12-11 12:47:53
回答 3查看 3.2K关注 0票数 6

我将keydown事件与jQuery绑定在一起,以允许在文本框中使用某些特定字符。我正在尝试让我的代码跨浏览器和平台兼容。我的主要问题是,我找不到一种方法来将接收到的键码映射到有效的字符码,特别是来自数字键盘的键码(小数点分隔符,是逗号还是句号等)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-15 09:41:29

正如我在评论中所说,这个问题背后的目标是根据数值过滤文本框。我设法通过按键事件达到了我的目标。

我已经为那些对这个解决方案感兴趣的人发布了一个jQuery plug-in

票数 1
EN

Stack Overflow用户

发布于 2009-12-11 13:56:49

这是正确的。您不能进行这样的映射;keydown甚至可能不对应于要插入的字符。或者Caps Lock可能会改变按键的含义,而你无法嗅探到这一点。和various other wrinkles

如果您想知道字符代码,您唯一的选择就是使用keypress事件。

票数 6
EN

Stack Overflow用户

发布于 2009-12-14 09:16:30

好吧,如果你的问题是键盘代码到字符的转换,为什么不让浏览器为你处理呢?这听起来可能很可怕,但您可以简单地允许浏览器修改文本框(这样delete就是delete,句点就是一个句点),然后返回并编辑它……嗯..。可能是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function hookEvents() {
    $('#myTextBox').oldValue = $('#myTextBox').value;
    $('#myTextBox').bind('keyup', function(event) {
        // Maybe nothing's changed?
        if (event.target.oldValue == event.target.value) {
            return;
        }

        var validInput = /(\-?[0-9]*(?:\.[0-9]*)?)/;
        var input = event.target.value;
        var result = validInput.exec(input);
        if (result.index != 0 || result[result.length-1] != input.length) 
        {
            event.target.value = result[0];
        }

        // update for later
        event.target.oldValue = event.target.value;
    });
}

这种方法最大的问题是,每个按下的键都会在屏幕上显示一段时间。另一方面,使用REGEX,您可以更多地控制允许输入的格式。在上面的例子中,我只允许正数或负数(带一个可选的小数点)。例如:"123“、"-123”、"-123.456“、"123.456”。

我知道这并没有真正回答你的问题,但它完全回避了这个问题!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1887874

复制
相关文章
在创业最好的时代中掘金!
这不是一个最好的时代,也不是一个最坏的时代, 对创业者来说却是最好不过的时代。2014年6月,中国手机上网比例首次超过PC机上网比例,这是一个拥有超过5.5亿用户的巨大市场。这个巨大的市场还是一个相对封闭,而国外互联网巨头无法插足的市场。同时, 在这个市场上,资金充裕、投资者投资意愿强、创业协作环境成熟、创业退出管道多样化、大公司并购积极、对创业公司的态度比以往任何时候都更加开放、经过互联网巨头若干年的专业训练, 市场上有实操经验愿意出来创业的专业人才充足。
IT阅读排行榜
2018/08/13
3590
rem在响应式布局中的应用
最近做了一些响应式的页面,遇到了一些问题,想了些解决方法,在这里总结一下。目前响应式的主流实现方式是百分比布局,加上媒体查询@media screen。关于媒体查询还有媒体查询的一些兼容性问题,网上介绍的很多
用户9127725
2022/08/08
1.6K0
Java 8 中的方法引用,怎么用到最好?
在Java8中,使用方法引用非常简单,如String::isEmpty,但无法使用它否定的方法引用。本文内容即如何解决此问题使得我们能够更加全面地使用方法引用。
Java技术栈
2020/05/24
8220
yapi中mock jsonp接口响应的方法
普通的json schema和期望方式,都只能返回json,无法在返回中增加callback函数名。我们尝试使用“高级mock”中的“脚本”完成这个功能。如下图所示,注意“是否开启”的部分一定要打开。
跑马溜溜的球
2020/12/07
1.3K0
yapi中mock jsonp接口响应的方法
在Heroku中部署一个Sinatra应用程序
在Heroku中部署一个Sinatra应用程序。首先需要在Heroku上注册一个账号,然后创建一个应用程序。接着通过在Gemfile中添加必要的Ruby gems来配置你的应用程序。最后,使用Git将你的应用程序推送到Heroku,并在Heroku上启动该应用程序。
Techeek
2018/01/05
2.6K0
在Heroku中部署一个Sinatra应用程序
Gitlab CI 在 Kubernetes 中的 Docker 缓存
前面我们有文章介绍过如何在 Kubernetes 集群中使用 GitLab CI 来实现 CI/CD,在构建镜像的环节我们基本上都是使用的 Docker On Docker 的模式,这是因为 Kubernetes 集群使用的是 Docker 这种容器运行时,所以我们可以将宿主机的 docker.sock 文件挂载到容器中构建镜像,而最近我们在使用 Kubernetes 1.22.X 版本后将容器运行时更改为了 Containerd,这样节点上没有可用的 Docker 服务了,这个时候就需要更改构建镜像的模式了,当然要实现构建镜像的方式有很多,我们这里还是选择使用 Docker 来构建我们的 Docker 镜像,也就是使用 Docker IN Docker 的模式。
我是阳明
2021/11/17
1.5K0
在Linux上清除内存缓存的方法命令
默认情况下,每个Linux操作系统都有一个高效的内存管理系统,该系统用于定期清除缓冲区高速缓存。您可以使用以下简单命令手动释放内存缓存:
用户5005176
2021/09/08
4.1K0
在java中构建高效的结果缓存
缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘。
程序那些事
2020/07/08
1.5K0
RxJS 在 Angular响应式表单中的使用
FormControl 的 valueChanges 属性和 statusChanges 属性包含了会发出变更事件的可观察对象。 例子
mafeifan
2019/03/04
5.1K0
React 中获取数据的 3 种方法:哪种最好?
在执行 I/O 操作(例如数据提取)时,要先发送网络请求,然后等待响应,接着将响应数据保存到组件的状态,最后进行渲染。
前端小智@大迁世界
2019/11/08
3.6K0
在 Confluence 中启用 HTTP 响应压缩
Confluence 能够支持 HTTP 的 GZip 传输编码。这个意味着 Confluence 将可以把数据压缩后传输给用户,这种配置能够针对不稳定的互联网状态下的传输速度缓慢和不稳定并且能够降低 Confluence 服务器的带宽的消耗。
HoneyMoose
2019/01/30
1.1K0
脚本负责在响应完成时调用processResponse()方法
【注意】XMLHttpRequest对象的设计目的是为了处理由普通文本或XML组成的响应;但是,一个响应也可能是另外一种类型,如果用户代理(UA)支持这种内容类型的话。
用户7718188
2021/10/08
8950
HTTP详解(2)-请求、响应、缓存
做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP协议传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,而消息头是必须的。每当我们打开一个网页,在上面点击右键,选择“查看源文件”,这时看到的HTML代码就是HTTP的消息体,那么消息头可以通过浏览器的开发工具或者插件可以看到,如果火狐的Firebug,IE的Httpwatch。
黄规速
2022/04/15
2.3K0
HTTP详解(2)-请求、响应、缓存
在WebFlux中自定义异常响应
在web中可以使用@ControllerAdvice即可编写统一异常响应,在webFlux下则是另一种编写方式。
Diuut
2022/11/22
1.8K0
Linux中通过缓存DNS的解析来提高上网的响应速度!
看上去是等待DNS服务器对域名的解析,闲来无事, 于是 决定做个DNS Cache来提高上网速度!
用户1685462
2021/07/18
3.7K0
在Spring Boot中实现HTTP缓存
幸运的是,Java附带了第一个这些格式的预定义格式化程序。可以在下面找到将标题设置为当天结束的示例。
lyb-geek
2018/12/07
5.3K0
C# 程序在 Docker 中响应 Unix 信号
在 Docker Entry Script 详解中介绍了如何在 shell 脚本中响应 Unix 信号量来实现 Docker 应用优雅的关闭退出, 本文介绍 C# 程序如何在 Docker 中响应 Unix 信号实现优雅的关闭退出。
beginor
2020/08/10
1.6K0
缓存系统在游戏业务中的特异性
韩伟
2017/01/06
3.3K0
缓存系统在游戏业务中的特异性
点击加载更多

相似问题

在PHP中缓存对象的最好方法?

21

Sinatra中的缓存变量

12

在Sinatra缓存twitter gem tweet的简单方法?

12

在php中缓存文件的最好方法是什么?

22

缓存MySQL结果的最好方法?

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文