2014-09-24 83 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