<html>
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script type="text/javascript">
//================UI dialog===========
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
show: {
duration: 100
},
hide: {
duration: 100
}
});
});
</script>
<script type="text/javascript">
function validation()
{
var emailField=document.form.email.value;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (reg.test(emailField.value) == false)
{
$( "#dialog" ).dialog( "open" );
p_dialog.innerHTML="Please enter valid email ... ";
document.form.name.select();
return false;
}
}
</script>
</head>
<body>
<div id="dialog" title="Basic dialog">
<p id="p_dialog"></p>
</div>
<form action="data.php" method="post" name="form" onsubmit="return validation()" enctype="multipart/form-data">
<input type="text" name="email" style="width:100%" id="email">
<input type="submit" name="submit" value="submit" >
</form>
</body>
</html>
这里我使用UI对话框来检查电子邮件字段的验证,但它没有显示对话框
.dialog("open")
我用于必填字段的相同代码和同一形式的名称字段中的代码相同,但是当我将其应用于电子邮件时,它不会显示任何消息。
答案 0 :(得分:1)
function validation()
{
var emailField=document.form.email.value;
var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if (filter.test(emailField)) {
return true;
}
else {
document.getElementById("email").focus();
$( "#dialog" ).dialog( "open" );
p_dialog.innerHTML="Please enter valid email ... ";
//document.form.name.select();
return false;
}
}
答案 1 :(得分:0)
您可以使用正则表达式验证电子邮件ID。以下是标准使用:
<asp:RegularExpressionValidator ID="regEmail" runat="server" ControlToValidate="your_textboxid" ErrorMessage="Please enter valid Email ID" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" SetFocusOnError="true"></asp:RegularExpressionValidator>
</td>
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
其他明智地将上述正则表达式放在你的JS代码中,它应该可以正常工作。
查看已编辑的JS代码
<script type="text/javascript">
function validation() {
var emailField = document.form.email.value;
var reg = \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*;
if (reg.test(emailField.value) == false) {
$("#dialog").dialog("open");
p_dialog.innerHTML = "Please enter valid email ... ";
document.form.name.select();
return false;
}
}
</script>
答案 2 :(得分:0)
我将假设您提供的代码比您向我们展示的代码更多,因为您似乎正在尝试使用jQuery,但它不是在任何地方加载示例。 (编辑:我写这篇文章的时候并没有这样做)
话虽如此,在你的正则表达式中,+需要追逐]和之前的
var reg = /^([A-Za-z0-9_\-\.]+)\@([A-Za-z0-9_\-\.]+)\.([A-Za-z]{2,4})$/;