2014-09-24 82 views
0

我目前正在驗證輸入字段,但我目前的問題是,我已設置爲在每次擊鍵後驗證。我想在將光標從輸入字段中移出並不確定語法之後將其更改爲有效。驗證輸入字段移動到另一個字段後,而不是在keydown

這是我當前輸入字段:

<input type="text" id="EmailField" name="Email" placeholder="Email" data-val="true" data-bind="value:email, event: { keyup: validateEmail, valueUpdate: 'afterkeydown'}" required=""> 

我validateEmail功能:

$this.validateEmail = function() { 

      var regexEmail = ...Expression...; 
      var result = regexEmail.test($('#EmailField').val()); 

      if (!result) { 
       notify({title: 'Invalid Email', text:'Invalid email format', type:'error'}) 
      } 
     }; 
+1

我認爲你正在尋找的JavaScript – Charmless 2014-09-24 19:41:25

+0

onChange事件@charmless當我改變'事件:{keyup:validateEmail,valueUpdate:'afterkeydown'}'onclick:validateEmail()'我沒有定義'validateEmail'。 – user3244544 2014-09-24 20:04:15

+0

你的validateEmail函數在哪裏定義?它是在頁面中還是在單獨的.js文件中?在調用之前,您需要定義或包含函數。 – Charmless 2014-09-24 20:24:56

回答

0

使用onblur事件,並在該函數調用函數 您可以使用驗證

<input id="a" onblur="fun(this);"> 
    <script> 
    function fun(ab){ 
     alert(ab.value); 
    } 
    </script> 

jsbin example

上面的代碼段使用的onblur輸入的事件

回答更新

使用模糊的,而不是KEYUP事件

<input type="text" id="EmailField" name="Email" placeholder="Email" data-val="true" data-bind="value:email, event: { blur: validateEmail, valueUpdate: 'afterkeydown'}" required=""> 
+0

我試過這個,但不知道它爲什麼說沒有定義validateEmail函數 – user3244544 2014-09-24 20:06:23

+0

你使用的是什麼技術?如果它是JavaScript,那麼我的答案應該工作?你可以提供你的代碼jsbin或jsfiddle – 2014-09-24 20:16:05

+0

我沒有從html頁面中調用腳本,但分開。我也使用knockout和jquery以及javascript。我用我的功能更新了我的帖子 – user3244544 2014-09-24 20:26:57