我编写了一个Java脚本函数,我正在检查哪个键被按下了文本框的“OnKeyPress”事件。
if (key==35 || key==36)
return true; // return true only if the key pressed is HOME or END.
但是,如果用户输入键#或$,则上述函数也返回true。 #代表35和&代表36.根据我的要求,这是不正确的。
我的问题是,如何在java脚本中区分这两种类型。
请帮忙。
这是整个代码: -
Aspx: -
<telerik:RadTextBox ID="txtEmpName" runat="server" MaxLength="255">
<ClientEvents OnKeyPress="AlphabetOnly" />
</telerik:RadTextBox>
使用Javascript: -
<script language="javascript" type="text/javascript">
function AlphabetOnly(sender, eventArgs)
{
if (key==35 || key==36)
return true;
}
</script>
答案 0 :(得分:1)
如果你抓住键码 keydown 或 keyup 而不是 keypress ,
# returns 51, $ returns 52, End is 35 and home is 36
答案 1 :(得分:1)
是的,这个问题很老了,但我今天早些时候遇到了同样的问题。 作为一种解决方法,我还要检查是否按下了shift键。在大多数键盘上,需要移位才能输入#或$键。因此,如果按下shift而不是符号键,如果没有,那么它就是END / HOME键。
function checkKeyPress(evt) {
if (evt.which === 35) {
if (evt.shiftKey === true) {
//'#' key
} else {
//'END' key
}
}
}
答案 2 :(得分:0)
如果您正在使用jQueryUI,则可以使用$.ui.keyCode constants:
keyCode: {
END: 35,
HOME: 36
}
因此,为了检查HOME按下使用:
if (event.keyCode === $.ui.keyCode.HOME) { ... }