我有以下代码。我需要在提交表单时检查用户输入的验证(他的电子邮件地址)。如果电子邮件地址的格式不正确,则应显示错误消息。
问题是,当我在文本框中输入错误的电子邮件地址并按下提交按钮时,没有任何反应。我曾经使用alert检查代码(我写了alert("Email")
)并且知道$("#customerEmail").val()
没有返回任何值,而我当前在文本框中输入了一个值。可能是什么问题?
<form method="post" action="">
<input type="text" id="customerEmail"/>
<br/>
<input type="submit" id="customerRegister" name="customerRegister"/>
</form>
<?php
if(isset($_POST['customerRegister'])){
echo'
<script type="text/javascript" src="Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var EMail=$("#customerEmail").val();
alert(Email);
var atpos = EMail.indexOf("@");
var dotpos = EMail.lastIndexOf(".");
if (EMail != "")
{
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= EMail.length)
{
$("#customerEmailSpan").html("wrong email address");
}
else if (atpos >= 1 && dotpos >= atpos + 2 && dotpos + 2 < EMail.length)
document.getElementById("customerEmailSpan").innerHTML = "";
}
</script>';
}
?>
答案 0 :(得分:0)
为什么你不做这样的事情而不是把js与php混合?
创建一个单独的javascript文件并将js代码放在此处。
您正在声明电子邮件并提醒电子邮件。这可能是一个原因。
(function($){
//Call the script after document is loaded.
$(document).ready(function() {
//on click event of submit button
$("body").on("click", "#customerRegister", function(e){
var EMail = $("#customerEmail").val();
//This is the mistake you were doing. ie; print Email instead of EMail.
alert(EMail);
var atpos = EMail.indexOf("@");
var dotpos = EMail.lastIndexOf(".");
if (EMail != "")
{
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= EMail.length)
{
$("#customerEmailSpan").html("wrong email address");
}
else if (atpos >= 1 && dotpos >= atpos + 2 && dotpos + 2 < EMail.length)
$("#customerEmailSpan").val("");
}
});
});
}(jQuery));