2013-01-10 82 views
0

我使用Bootstrap的登录表单示例代码创建了注册表单,并且我试图在表单操作发生之前对表单执行粗略验证。不过,我注意到即使我的表单动作仍然被提交,并且我被加载到表单操作页面。 当表格的值无效(即:电子邮件类似于abcdef)时,我怎样才能阻止这种情况发生。从提交中停止表单

这里有一个小提琴:http://jsfiddle.net/CCsJn/1/

注意,即使代码返回false,表单提交。

搜索给我带来了this question,但这些代码并没有为我

回答

3

傻我的工作!这是一个错字!

if ((email.value.length == 0) || (!validateEmail(email))){ 
     alert("Valid email is required."); 
     elem.focus(); 
     return false; 
} 

elem.focus()应该email.focus()

+0

我刚刚回来说,当我删除该行,它工作正常。不要感觉不好。大多数时候我会问某人某件事,我在结束这句话之前自己弄明白了。 – Mike

+0

你可以将你的答案标记为......嗯,答案。 :P – vanneto

+1

为了将来的参考,当你正在测试类似的东西时,将你的代码封装在try/catch中,并且始终返回false以便可以消除流程中的未知事件。在这种情况下,无论验证是否通过,您的js都会抛出一个错误,以便表单提交。 以下是我的意思:http://jsfiddle.net/CCsJn/5/ – oomlaut

0

末试着像这样的情况

event.stopImmediatePropagation(); 
      event.preventDefault(); 
      return false; 

但对于这一点,你必须定义一个事件1,这将是您的病情。 如果确切的东西没有帮助,请阅读stopImmediatePropagation和preventDefault。我有同样的问题,这帮助我