如何使用jQuery打开/关闭Caps Lock键?我有一个密码textbox,我只允许使用小写字母,因此我不希望Caps Lock键打开.
是否可以使用jQuery检测Caps Lock键的状态?
我只是在监听input元素的keyup事件,并将结果收集到一个字符串中
word=word+String.fromCharCode(key.keyCode);
Run Code Online (Sandbox Code Playgroud)
问题是这个单词是大写字母,而我希望它是区分大小写的.例如,如果我输入abcef,我累积的单词将变为'ABCEF'.
注意 - 我需要一个纯粹的JavaScript解决方案(没有库..)有什么想法吗?
您可能知道,有一种相对简单的方法,如何或多或少地可靠地检测Caps Lock是否已打开,尤其是当用户开始输入密码字段时.但是,IE10自动支持此功能是一个非常未知的事实,无需任何额外的编码(源代码,直接链接到屏幕截图和简单的演示).因此,现在我遇到了一个问题,因为如果我添加类似的Javascript功能,IE10用户会看到两个带有警告的"气泡",一个由我的脚本创建,一个由他们的浏览器创建; 这可能看起来很难看甚至令人困惑.这就是为什么我正在寻找一种解决方案如何检测浏览器是否内置此功能的原因; 我希望它触发一些事件或改变一些属性,但我没有找到这样的东西.
我可能只是Trident/6.0在用户代理字符串中寻找,但我宁愿避免浏览器检测; 如果其他浏览器添加类似的功能,它可能还需要一些代码维护.
如果没有可靠的解决方案,我会要求IE团队添加"caps-lock-is-on功能"检测的功能,并且可能还有HTML规范的编辑者要求供应商执行此操作.
在网络表单中,是否有任何方法可以判断大写锁定是否已打开?
我想我可以检查一下检查onChange是否所有字符都是大写的.但有更直接的方法吗?
具体来说,我想在他们输入密码字段时实现"你的大写锁定已开启"消息,类似于Windows登录屏幕的方式.
在我的研究中,我发现了如何在按下大写键时检测大写锁定。但是,即使在未触摸键的情况下,我也想知道大写状态。
示例:alert(ui.Keyboard.capslock) // 将返回 true 或 false;
谢谢!
当用户设置了大写字母时,Gmail会在Chrome中显示一个图标并关注密码字段,他们如何才能做到这一点?
有很多相关的问题,但似乎没有人知道如何在没有用户输入的情况下做到这一点,例如:
我想使用输入元素中的焦点事件来检测大写锁定是否处于活动状态,但没有任何按键,例如具有 IE 输入密码类型的行为。对于 IE,当您专注于这种输入密码时,如果用户具有活动大写锁定,即使用户没有按下我想要使用 JS 执行的任何键,也会出现警告工具提示。现在我的代码只处理按键事件
$(function() {//check caps lock on
var isIE = !isIE && !!window.StyleMedia;
if (isIE == true) {
document.msCapsLockWarningOff = true;
}
$('#Password').keypress(function (key) {
if (key.charCode >= 65 && key.charCode <= 90)
$('#capLockOn').tooltip('show');
else {
$('#capLockOn').tooltip('hide');
}
//Hide the tooltip when moving away from the password field
$('#Password').blur(function (e) {
$('#capLockOn').tooltip('hide');
});
});
});
Run Code Online (Sandbox Code Playgroud)
我想添加警告,而无需浏览器的任何本机警告,以保持一致的设计 请提供任何建议...
铬 (52):
当打开大写锁定时 - 仅触发 keydown(keyUp 或 keyPress 中没有事件)
当关闭大写锁定时 - 仅触发 keyup(keyDown 或 keyPress 中没有事件)
火狐 (46):
对于大写锁定打开和关闭,仅触发 keyDown 事件(无 keyUp 或 keyPress)
我在这里阅读了有关 keyCodes 和事件的信息http://www.quirksmode.org/js/keys.html以及 MDN 中的内容https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent /keyCode, aaa 和这里http://unixpapa.com/js/key.html
但以上链接都没有讨论这种奇怪的行为。这是预期的吗?如果是这样,有什么更简单的方法可以处理吗?
如何在大写锁定打开时检测和警告用户(或者没有)打字稿中的工具提示样式(角度4.2.2)?也许有一些keyup事件,或者像toUpperCase()JS一样.
用于检查Capslock是否打开的以下代码在"onkeypress"事件上正常工作.
但我希望它用于"onfocus"活动.我尝试用"onfocus"替换"onkeypress"用于控件,但它对我不起作用.
有帮助吗?(在javascript或Jquery中)
<script type="text/javascript" language="Javascript">
function capLock(e) {
kc = e.keyCode ? e.keyCode : e.which;
sk = e.shiftKey ? e.shiftKey : ((kc == 16) ? true : false);
if (((kc >= 65 && kc <= 90) && !sk) || ((kc >= 97 && kc <= 122) && sk))
document.getElementById('divMayus').style.visibility = 'visible';
else
document.getElementById('divMayus').style.visibility = 'hidden';
}
</script>
<input type="text" name="txtuname" />
<input type="password" name="txtPassword" onkeypress="capLock(event)" />
<div id="divMayus" style="visibility:hidden">Caps Lock is on.</div>
Run Code Online (Sandbox Code Playgroud) 我有这个代码用于将密钥添加到密码.如果capslock打开则会触发.我从如何判断是否使用JavaScript开启大写锁定?
$("input[type='password']").keypress(function(e) {
var $warn = $(this).next(".capsWarn"); // handle the warning mssg
var kc = e.which; //get keycode
var isUp = (kc >= 65 && kc <= 90) ? true : false; // uppercase
var isLow = (kc >= 97 && kc <= 122) ? true : false; // lowercase
// event.shiftKey does not seem to be normalized by jQuery(?) for IE8-
var isShift = ( e.shiftKey ) ? e.shiftKey : ( (kc == 16) ? true …Run Code Online (Sandbox Code Playgroud) javascript ×9
capslock ×7
jquery ×3
passwords ×2
angular ×1
dom-events ×1
events ×1
fromcharcode ×1
html ×1
key-events ×1
keyboard ×1
onfocus ×1
string ×1