使用jQuery验证电子邮件

使用jQuery验证电子邮件,jquery,validation,email,Jquery,Validation,Email,我有一个来自jQueryUI的模式对话框,当我按下按钮时会出现。以下是关于模态对话框的jQuery代码: $('#eb1').click(function(){ $('#emailPost').submit(); $("#emailModal").dialog('close'); }); $('#eb2').click(function(){ $('#emailPost2').submit(); $(

我有一个来自jQueryUI的模式对话框,当我按下按钮时会出现。以下是关于模态对话框的jQuery代码:

     $('#eb1').click(function(){
        $('#emailPost').submit();
        $("#emailModal").dialog('close');
     });

     $('#eb2').click(function(){
        $('#emailPost2').submit();
        $("#emailModal").validate({
        rules: {
            emailAddress: {
                required: true,
                email: true
            }
        }
        }).showErrors({"error": "Invalid Email!"});
        $("#emailModal").dialog('close');
     });
以下是显示所有这些内容的PHP:

echo "<form action='php/emailPost.php' method='POST' class='inline' id='emailPost'>";
echo "<input type='hidden' value='" . $_SESSION["email"] . "' name='emailAddress'>";
echo "<input type='button' value='Email To Me' id='eb1'/>";
echo "<input type='hidden' name='passedCoupID' value='" . $coupID . "'/>";
echo "</form>";
echo "<h3>Or</h3>";
echo "<form action='php/emailPost.php' method='POST' class='inline' id='emailPost2'>";
echo "<label name='error'></label>";
echo "<input type='text' value='Enter an Email' class='required email' name='emailAddress' style='display: inline-block;'>";
echo "<input type='button' value='Email' id='eb2'/>";
echo "<input type='hidden' name='passedCoupID' value='" . $coupID . "'/>";
echo "</form>";
echo”“;
回声“;
回声“;
回声“;
回声“;
呼应“或”;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;

我知道按钮工作得很好,它们提交得很完美,但是后者提交时不管验证结果如何。我对jQuery还很陌生,如果无效,我怎么能让它显示错误,除非电子邮件有效,否则不提交呢?

在我看来,你好像在调用
$(“#emailPost2”).submit()
;在你打电话之前。在进行验证之前,这不是要提交您的表格吗

当我使用jQuery Validator插件时,我在
$(document).ready()中声明了验证规则。也许您应该尝试更早地声明规则,而不是单击按钮

如果模式弹出窗口是动态创建的,那么您可以使用

$("#emailPost2").live(function() {validation rules});

因此,在创建表单时,它会附加验证规则

您使用的是这个验证插件吗?

如果是这样的话,看起来你做得不对

将按钮更改为type=“submit”,然后将validate()调用连接到emailPost(如果需要)和document.ready中的“emailPost2”

$(document).ready(function(){
    $("#emailPost2").validate({ 
        rules: {
            emailAddress: {
                required: true,
                email: true
            }
        }
        }).showErrors({"error": "Invalid Email!"});
});
请查看该链接中的源代码以获取一些示例

$('#eb1').click(function(){
    $('#emailPost').submit();
    $("#emailModal").dialog('close');
 });

 $('#eb2').click(function(){
    $('#emailPost2').submit(function(){
      var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
      var address = $("#emailModal").val();
      if(reg.test(address) == false) {
      alert('Invalid Email Address');
      return false;
   }
   else
   {
     return true;
   }
 });

 $("#emailModal").dialog('close');
 });