我的主页上有以下代码供人们注册时事通讯 - 电子邮件地址输入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>
我希望将此类验证合并到此简报表单中,以便在单击“转到”按钮时,将显示“谢谢”弹出窗口或“无效电子邮件”弹出窗口。出于某种原因,即使我输入表格id =“form_id”等,我也无法使其工作。我基本上能够站在一边或另一边工作但不能同时工作!
任何建议都非常感谢 谢谢 JD
答案 0 :(得分:0)
在表单中使用类似的东西来调用JS验证代码
<form method="GET" action="javascript:Validate(id)">
为了使这个工作,你的JS应该总是返回false。使用JS位置重定向成功。