字母表验证控制
Alphabet validation control
我试图对字母表输入进行验证控制。验证不知何故不起作用。有人知道我在代码中遗漏了什么吗。以下是jsfiddle,便于查看http://jsfiddle.net/8fy408hL/1/.感谢
这是我的javascript
function valName (name) {
var self = this;
var letter = /^[A-Za-z]+$/;
self.name = ko.observable(name);
if(name.value.match(letter)) {
alert('Input accepted');
return true;
} else {
alert ('Input is numeric. Must be alphabet!');
return false;
}
}
ko.applyBindings (new valName());
目前的情况是,当值发生变化时,执行正则表达式比较的代码将不会被调用,因为它不在方法中。
当self.name
的值发生更改时,您可以使用Knockout subscribe方法得到通知。因此,这就是您订阅Knockout observable的方式:
self.name = ko.observable('');
self.name.subscribe(function (newValue) {
// newValue is the updated value
// run the checks on new value here
});
工作Fiddle
标记
<p>Name:
<input data-bind="value: name" />
</p>
JS
function valViewModel() {
var self = this;
var letter = /^[A-Za-z]+$/;
self.name = ko.observable('');
self.name.subscribe(function (newValue) {
if (newValue.match(letter)) {
alert('Input accepted');
} else {
alert('Input is not alphabet');
}
});
}
ko.applyBindings(new valViewModel());
更好的方法可能是使用computed
值,只要可观察到的变化,它也会得到通知:
self.nameValid = ko.computed(function () {
if (self.name()) {
if (self.name().match(letter)) {
alert('Name is valid');
} else alert('Name not valid');
}
});
演示Fiddle
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 如何验证表单控制数据大小不超过2.5 mb
- 如何验证“缓存控制”、“无缓存、无存储、必须重新验证”
- 隐藏控制对于验证仍然具有挑战性
- AngularJS中的表单验证和动态控制
- 验证成功控制
- 推特:仅应用程序身份验证错误访问控制允许原点不允许原点为null
- 单选按钮输入控制客户端验证
- 字母表验证控制
- 使用中继的身份验证和访问控制
- 控制何时在angular中进行验证
- 如何使用漏洞控制在客户端验证期间防止表单提交
- 如何验证sharepoint日期时间控制
- 使用javascript禁用验证器控制的最佳方式
- ASP.NET WebForms-同时执行JavaScript验证和验证控制
- Angular 2-获取表单控制验证器
- 没有具有在线身份验证Microsoft“访问控制-允许源”标头
- 使用 javascript 验证控制