我有一个简单的输入文本元素:
<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, ''));
}
};