Javascript处理$ key和END键,代码 - > 36.如何区分?

时间:2014-02-20 23:24:33

标签: javascript

我编写了一个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>

3 个答案:

答案 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) { ... }