2016-04-07 3 views
0

私はMVCでKnockoutJSを使用しています。knockoutjsで入力タイプ= 'email'をバインドする方法

emailIdが有効か無効かを知りたいので、それに基づいてボタンを有効/無効にし、テキストボックスにエラータイトルを設定する必要があります。

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) { 

} 

私は電子メールの種類テキストボックスの有効性を知るためにどのように知っているとどのように私はタイトルを変更することができますしてください:ここ

はここ

<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コードである私の.cshtmlですノックアウトJSで無効の場合にも同じ。あなたが検証プラグインを使用したくない場合は、あなたがあなた自身の正規表現に対する入力をテストすることができますどのように私は入力タイプ「メール」でテキストボックスの有効性を得ることができます

+1

ノックアウト検証プラグインを使用できます。 https://github.com/Knockout-Contrib/Knockout-Validation/wiki/Native-Rules。 –

+0

リンクをありがとうございます。しかし、私は入力タイプ 'email'としたいと思います。電子メールに関連するものがあれば教えてください –

+0

いつメールを検証したいですか?ユーザーが入力中、またはユーザーが「送信」ボタンをクリックすると、 –

答えて

1

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

関連する問題