我已经在表单中添加了一些javascript来验证电子邮件,然后再提交表单。我不想要一个单独的按钮来验证,我希望它成为表单提交按钮的一部分。它当前工作,并出现一条消息,要求我输入一个有效的电子邮件地址。问题是,当我点击“确定”它仍然尝试提交表单(并失败)而不是返回到表单来更正电子邮件地址。
我的Javascript:
<script language="javascript">
function checkEmail() {
var email = document.getElementById('txtEmail');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}</script>
我的HTML:
<input type="text" name="email" id="txtEmail" />
<input type="SUBMIT" class="button" value="Submit Email" onclick='Javascript:checkEmail();' />
我无法弄清问题是什么。任何帮助,将不胜感激。干杯
答案 0 :(得分:2)
只需在函数调用之前添加return:
<input type="SUBMIT" class="button" value="Submit Email" onclick='Javascript:return checkEmail();' />
答案 1 :(得分:0)
试试这个:
HTML:
<form name="whatever" action="action.asp" onsubmit="return validateForm()" method="post">
<input type="text" name="email" id="txtEmail" />
<input type="SUBMIT" class="button" value="Submit Email" />
</form>
JS(伪代码)
function validateForm()
{
if (something) {
alert('validation failed');
return false;
}
}
答案 2 :(得分:0)
以下是代码的返工。
<script type="text/javascript">
function checkEmail() {
var email = document.getElementById('txtEmail');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}
</script>
<input type="text" name="email" id="txtEmail" />
<input type="SUBMIT" class="button" value="Submit Email" onclick='checkEmail();' />
按预期工作。
答案 3 :(得分:0)
没有什么大问题,功能正常但是没有返回, 只需在调用函数之前添加return, 这是以下示例:
<input type="SUBMIT" class="button" value="mail" onclick='Javascript:return checkEmail();' />
这会解决你的问题, 享受:)