2016-07-08 13 views
1

私はウェブ開発を学んでいます。私は電子メール用とパスワード用の2つのテキストフィールドを持っているログインフォームを持っています。私は電子メールフィールドの検証が必要です。現在、私は検証することができますが、Submitボタンをクリックすると発生します。電子メールフィールドがフォーカスを失うとすぐに検証を実行できる方法はありますか?フォーカスが失われるとすぐにvalidateEmailメソッドに電話したいと思います。フォーカスを失うとすぐにフィールドを検証する方法

これは私が今まで持っているものです。

HTMLファイル

<div id="ErrMsg" style="color:red"> 
    <form id="myForm" action = "" method="post"> 
     <input id="email" name="Email" type="email" class="form-control" placeholder="Email"> 
     <input id="pass" name="Password" type="password" class="form-control" placeholder="Password" /> 
     <button id="signIn" type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button> 
    </form> 

JSはい、方法がある

window.loginView = Backbone.View.extend({ 
     events: { 
      'click #signIn': 'doSignIn', 
     }, 
     initialize: function() { 
      console.log('Initializing Login View'); 
     }, 
     validateEmail: function(email) { 
      var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
      return re.test(email); 
     }, 
     doSignIn: function(event) { 
      $("#ErrMsg").text(""); 
      var email = $("#email").val(); 
      // checking if email is valid 
      if (!this.validateEmail(email)) { 
       $("#ErrMsg").text(email + " is not valid :("); 
      } 
      else 
      { 
      // some logic to fetch data from REST 
      } 
     } 

答えて

1

ファイル。 focusoutイベントをバインドすることができます。

EDIT: は('click #signIn': 'doSignIn'後に)別のイベントを追加します。

'focusout #signIn': 'doSignIn' 
+0

スニペットを親切に提供できますか? – Unbreakable

+0

編集した回答を確認してください –

+0

'#email'にする必要があります。私はそれが電子メールの分野に適用されたいので。親切にガイド – Unbreakable

1

あなたはこのhttps://api.jquery.com/blur/

$("#email").blur(validateEmail) 

を参照してくださいjqueryのを使用していると(もちろんこれはvalidateEmailという名前の関数が必要です)

+0

答えをありがとうございます。私のコードに従ってこのメソッドをどこに置くべきですか教えていただけますか? 。 – Unbreakable

+1

私はbackbone.jsに慣れていません。コーディングが簡単になると思いますが、そうすることでカスタマイズの機会が減ります。電子メールの検証機能をグローバルなコンテキストで実行する必要がありますが、このフレームワークの残りのコードにどのような影響があるのか​​、私はアドバイスできません。 – grateful

関連する問題