KnockoutJS - 过滤用户输入

KnockoutJS - filtering user input

本文关键字:输入 用户 过滤 KnockoutJS      更新时间:2023-09-26

我有一个简单的输入文本元素:

<input type="text" data-bind="value:valInserted,valueUpdate:'afterkeydown'" />

如何验证用户对此元素的输入?我在创建正确的绑定来移植 jQuery 代码时遇到问题:

$('[id$="pinBox"] :text').keypress(function (e)
{
   if (!(e.charCode >= 48 && e.charCode <= 57) && e.keyCode != 8)
   {
       return false;
   }
});
我想

我终于明白了。

<input type="text" data-bind="validateValue:valInserted,valueUpdate:'afterkeydown',value:valInserted" />
ko.bindingHandlers.validateValue = {
    update: function (element, valueAccessor, allBindingsAccessor, viewModel)
    {
        var value = ko.utils.unwrapObservable(valueAccessor());
        viewModel.valInserted(value.replace(/[^0-9]/g, ''));
    }
};