使用javascript弹出窗口对时事通讯注册进行表单验证


form validation for newsletter signup with javascript popup

我的主页上有以下代码,供人们注册时事通讯-电子邮件地址输入到newsletter_emails表中,单击GO按钮时会出现感谢弹出窗口。

 Email:  <input type="text" name="email" value="" id="email" />
        <input type="button" name="submit" onclick="submit_me()" value="GO" />
        <script type="text/javascript" charset="utf-8">
            function submit_me() {
                var email_value = $('#email').val();
                $.post("ajax_subscribe.php", { email: email_value }, function(response) {
                    if (response!='') {alert(response)};
                    alert('Thank You !');
                });
            }

将电子邮件插入数据库(ajax_subcribe.php(的页面如下:

    <?php 
    $host = "xxxx";
    $user = "xxxx";
    $password = "xxxx";
    $database = "xxxx";
    $server = mysql_connect($host, $user, $password);
    $connection = mysql_select_db($database, $server);
    function sql_quote($value) {
        $value = str_replace('<?','',$value);
        $value = str_replace('script','',$value);   
        if (get_magic_quotes_gpc()) {
            $value = stripslashes($value);
        }
        if (!is_numeric($value)) {
            $value = "'" . mysql_real_escape_string($value) . "'";
        } else {
            if ((string)$value[0] == '0') {
                $value = "'" . mysql_real_escape_string($value) . "'";
        }}
        return $value;
    }
    $q = "INSERT INTO newsletter_emails (email,category) VALUES (".sql_quote($_POST['email']).",'1')";
    mysql_query($q);
?>

虽然这一切都很好,但ajax_subscribe页面上没有验证——我的网站的另一部分有以下javascript。

    <script type="text/javascript">
function validate(form_id,email) {
   var reg = /^([A-Za-z0-9_'-'.])+'@([A-Za-z0-9_'-'.])+'.([A-Za-z]{2,4})$/;
   var address = document.forms[form_id].elements[email].value;
   if(reg.test(address) == false) {
      alert('Invalid Email Address');
      return false;
   }
}
</script>

我想将这种验证纳入这份新闻稿表格中,这样在点击Go按钮时,就会出现"谢谢"弹出窗口或"无效电子邮件"弹出窗口。由于某种原因,即使我输入form id="form_id"等,我也无法使其工作。我基本上能够站在一边或另一边工作,但不能同时工作!

非常感谢任何建议谢谢JD

在表单中使用类似的东西来调用JS验证代码

 <form method="GET" action="javascript:Validate(id)">

为了实现这一点,JS应该始终返回false。成功时使用JS位置重定向。