Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单在jQuery中输入无效时错误地显示成功警报框_Javascript_Jquery - Fatal编程技术网

Javascript 表单在jQuery中输入无效时错误地显示成功警报框

Javascript 表单在jQuery中输入无效时错误地显示成功警报框,javascript,jquery,Javascript,Jquery,在下面的脚本中,我检查输入的电子邮件是否有效。这不是最好的正则表达式,但现在还可以。目前我也没有对输入进行任何服务器端检查。仅使用此脚本 但我有这个问题: 当一封电子邮件是有效的,并且在我键入一封无效的电子邮件后,我首先会收到您的电子邮件格式无效的消息,然后在我们启动时会通知您。非常感谢。警觉的。电子邮件也会被发送。如何解决这个问题 多谢各位 这是我的表格 <form id="myform" action="" method="POST"> <i

在下面的脚本中,我检查输入的电子邮件是否有效。这不是最好的正则表达式,但现在还可以。目前我也没有对输入进行任何服务器端检查。仅使用此脚本

但我有这个问题:
当一封电子邮件是有效的,并且在我键入一封无效的电子邮件后,我首先会收到您的电子邮件格式无效的消息,然后在我们启动时会通知您。非常感谢。警觉的。电子邮件也会被发送。如何解决这个问题

多谢各位

这是我的表格

<form id="myform" action="" method="POST">
                <input id="subscribe" name="subscribe" class="subscribe floatLeft" type="text">
                <button id="signUp" class="signUp floatRight" ><intro>notify!</intro></button>              
                <div class="clear">&nbsp;</div>
</form>

您需要在
emailReg
测试中
返回false
事件.preventDefault()

您需要onsubmit事件返回false; 您仍然需要绑定submit事件,并在那里进行isValid检查

$("#myform").submit(function(event){
  event.preventDefault();
  if(!isValid){
  return false;
 }else{
  $.post(...)
  return false;
 }
});
--编辑-- 忘记返回false/event.preventDefault;但正如我所说,提交事件无论如何都需要绑定

--编辑2--

}));
}

这将有助于:@asotshia显示您的HTML,从那里您可以调用
注册
。您可以使用Darhazer建议的方法和/或在$(文档)中使用我的答案。ready()。我尝试了
返回false就在
之后,您的电子邮件不是…
没有结果。您需要onsubmit事件返回错误。谢谢您的建议。我设法防止重新加载。但是我更新了我的问题,如果你看一下,我会非常感激。你更新的方式应该有效,但有点麻烦…,你是把onsubmit=“signUp(this.elements[0])”作为行动还是类似的东西?如果您只在document.ready上绑定提交事件并在那里进行检查,我想这就足够了。我会在我的回答中加入一个代码建议,但我仍然不确定您将其命名为何处。您需要获取电子邮件值的位置,在提交事件中也需要此位置。我的意思是,当用户在提交时按下时,您需要输入值。:)如果使用,请执行一些console.log/alert。检查正在使用函数验证的电子邮件值。还编辑和更改了#myInput和#subscribe以匹配您的html
$("#myform").submit(function(event){
  event.preventDefault();
  if(!isValid){
  return false;
 }else{
  $.post(...)
  return false;
 }
});
function validEmail(email){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return email.test(emailReg)
}
$(document).ready(function(){
  $("#myform").bind({
    submit: function(e){
     e.preventDefault();
     if(validEmail($("#myform").find("#subscribe").val()){
       $.post(...)
          alert("You will be notified");
         return false;
     }
     else {
        alert("Invalid email");
        return false;
     }

   });