【问题标题】:Characters are not showing on input text during keypress event - knockoutjs按键事件期间输入文本上未显示字符-knockoutjs
【发布时间】:2020-06-17 15:52:52
【问题描述】:

我想限制输入中的字母字符,所以我创建了一个函数并将其绑定到在 html 上使用 data-bind 的输入,这里是

<input type="text" data-bind="valueUpdate: 'afterkeydown', event: { keypress: function(data, event) { restrictAlphabetCharacter(event); } }" placeholder="Year" maxlength="4">

这是我的功能

restrictAlphabetCharacter(e) {
        var keyCode = (e.which) ? e.which : e.keyCode;
        if ((keyCode >= 48 && keyCode <= 57)) {
            return true;
        }
    }

文本框内没有显示字符的原因可能是什么。提前致谢。

【问题讨论】:

  • 我的回答是否帮助您解决了问题?如果是这样,请通过勾选左侧的 V 符号将我的答案标记为已接受。如果没有,请告诉我,我会尽力为您提供进一步的帮助。

标签: javascript jquery html knockout.js


【解决方案1】:

您的代码允许使用 keyCode 值为 48 到 57 的字符,这些字符只是数字(即 0 到 9)。如果您只想允许使用字母,请将 keyCode 限制为 65 到 90 的大写字母和 97 到 122 的小写字母:

function restrictAlphabetCharacter(data, e) {
    var keyCode = (e.which) ? e.which : e.keyCode;
    if ((keyCode >= 65 && keyCode <= 90) ||
        (keyCode >= 97 && keyCode <= 122)) {
        return true;
    }
}
ko.applyBindings();
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<input type="text" data-bind="valueUpdate: 'afterkeydown', event: { keypress: restrictAlphabetCharacter }" placeholder="Year" maxlength="4">

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    相关资源
    最近更新 更多