- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在尝试在 javascript 方法中强制文本框中的大写字母。此方法设置为在“按键”事件上调用以进入文本框。
这是我通过 IE 和 FF 检测更改为大写的方法。
//some code to detect the kind of key pressed based on numeric value,
//if lowercase detected then continue
var key;
if(window.event){ //working IE code
//key = window.event.keyCode;
window.event.keyCode-=32;
}
else if(e){ //broken FF code
key = String.fromCharCode(keycode).toUpperCase()
e.value = e.value.toUpperCase();
}
当前代码表示 e.value 在 firebug 中未定义。如果我尝试只是 e.toUpperCase() Firebug 说 toUpperCase 不存在。我尝试将 e.value 设置为等于“key”,它不会返回错误,但不会更改为大写。我尝试过直接更改 e.which,但当然,它是只读的并返回一个错误。
我到底错过了什么?我相信问题是无论我在这里更改什么, e.which 仍然设置为小写值,并且因为我无法以任何方式编辑它,所以原始的小写 e.which 字符被推送到文本框。
最佳答案
我想我会用另一种方式来做:
function keypressHandler() {
this.value = this.value.toUpperCase();
}
document.getElementById('whatever').onkeypress = keypressHandler;
// or use addEventListener or whatever
编辑实际上,使用以下技巧可以更好地工作:
function keypressHandler(event) {
var inp = this;
setTimeout(function() {
inp.value = inp.value.toUpperCase();
}, 0);
}
这可以让导致事件的键在值“固定”之前添加到该值中。
重点是,处理键盘事件非常困惑,而且不同浏览器的情况也有所不同。上述方法通过直接处理由浏览器维护的值来完全避免这种情况。
编辑 - 请注意,为了使此处的代码正常工作,必须按照此代码的方式设置事件处理程序。如果您在 HTML 标记中的“onkeypress”属性中设置它,则它必须有所不同:
<input onkeypress='keypressHandler.call(this)'>
关于javascript toUpperCase 在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783982/
我想知道为什么 Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数。 我必须将任何语言
这是我的程序的代码。主要方法已提供,不可触及。 main 方法将 String 转换为大写,但不接受 toUpperCase(); java方法。如何在不改变 main 方法的情况下解决这个问题? p
我们需要从大写字符串中获取字符流。有两种方法: word.toUpperCase().chars() word.chars().map(Character::toUpperCase) 哪种方法更好?
我想知道为什么 Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数。 我必须首先将可以
我正在尝试以这种特定的方式解决编码挑战。 目标是将字符串的每个第二个字母大写。 当我使用 letterArray[0] 或任何其他数字运行代码时,代码运行完美。但当我将其切换到 letterArray
我有以下字符串数组 let example = ["hello", "what"]; 我想将此数组转换为: ["Hello", "what"]; 为了实现这一点,我有以下代码: example[0]
当名称全部为大写时,该函数应该向用户喊回。例如,当名称为“JERRY”时,函数应返回字符串“HELLO, JERRY!”控制台记录错误:.toUpperCase() 不是函数。 var hello =
这个问题已经有答案了: toUpperCase() is not making the string upper case (9 个回答) 已关闭 2 年前。 我是 Javascript 新手,对 t
就在前几天,我遇到了一个奇怪的错误。我必须构建一串字符。作为分隔符,我正在与之通信的主机系统使用了 char 254。无论如何,我构建了我的字符串并将其发送到主机。在主机上我收到 char 222 作
这个问题已经有答案了: toUpperCase() is not making the string upper case (9 个回答) 已关闭 2 年前。 我是 Javascript 新手,对 t
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: How do I compare strings in Java? Strings in Java : equals
典型输入如下... Department one 在我的函数中... var chksDept = $('input[type=checkbox].actEmail:checked'); var de
我想在每次更改输入字段的内容时执行 toUpperCase()。我的意思不是当字段失去焦点时,而是每次键入字符时。 我尝试了这个,但没有用(我对 JQ 还很陌生)! $(".myClass").cha
if (json.ScheduleCareProviderScheduledPatientsGetResult.Appointments[i].Patient.Firstname.toUpperCas
我不知道我做错了什么;但不知何故 .toUpperCase() 字符串函数在我的浏览器上不起作用还是我弄错了什么? var string ="kjsdgfiIJHBVSFIU"; string.toU
我正在尝试解决一个问题,该问题采用特定符号并将其从字符串中删除,然后将该符号后面的字符转换为大写。但由于某种原因,大写字符后面的字符也变成大写。 s 是给定的字符串。 String[] symbols
我正在尝试编写一个接受字符串的函数,该字符串将以数组内的“waved”版本返回: wave("stack") => ["Stack","sTack", "stAck", "staCk", "stack
这就是我想要的代码。当您写入任何单词时,它会使用 onkeyup 自动更改为大写。此外,当用户单击新窗口时,大写字母将显示在新窗口中。我只能做第一部分。我该怎么做呢? https://jsfiddle
我正在尝试修复由forbiddenapis 报告的错误。我有这样一句话: paramMap.put(Config.TITLEBOOST.toUpperCase(), titleBoost); 所以,它
再说一遍:我在这里学习!很抱歉回答这些基本问题,但我必须学习...... 使用我在网上读到的一个技巧,我试图将其从全部大写改为大写首字母。请参阅此处的代码 - 特别是我们正在查看 JavaScript
我是一名优秀的程序员,十分优秀!