我正在使用KnockoutJS和MVC。
我想知道emailId是有效还是无效,并且基于它我必须启用/禁用按钮并为文本框设置错误标题。
这是我的.cshtml
<div class="nmc-righttab" style="width:265px;">
<input class="nmc-text" type="email" maxlength="50" id="txtEmail" data-bind="value: emailAddress, valueUpdate: 'input'",css: { faultyBrush: (checkValidEmail() },attr: {title: InvalidEmailTitle } style="width:245px;" />
</div>
<input type="submit" class="btn nmc-button" data-bind="click: searchUsers,enable: canSearchUsers,css: { 'btn-primary': (canSearchUsers() == true) }" id="searchUser" value="@Res.CommonStrings.Search" />
这是我的JS代码:
this.emailAddress = ko.observable('');
this.invalidEmailTitle = ko.observable('');
this.canSearchUsers = ko.computed(function () {
try {
if (this.emailAddress().trim().length!==0)
return true;
else
return false;
} catch (error) {
NMCApp.showNMCExceptionWindow('Jquery Error:' + error);
}
}, this);
this.checkValidEmail(input) {
}
请告诉我如何知道电子邮件类型文本框的有效性,以及如何在Knockout JS中无效的情况下更改相同的标题。
如何使用输入类型&#34; email&#34;
获取文本框的有效性答案 0 :(得分:1)
如果您不想使用Validation插件,可以根据自己的正则表达式测试输入:
HTML
<input data-bind="textInput: emailAddress, css: { 'faultyBrush': !checkValidEmail()}" class="nmc-text" type="email" maxlength="50" id="txtEmail" />
JS
var self = this;
self.emailAddress = ko.observable('');
self.checkValidEmail = ko.pureComputed(function () {
if (!self.emailAddress()) return false;
var pattern = /REGEX-GOES-HERE/i;
return pattern.test(self.emailAddress());
});
有几种模式here。