【发布时间】:2023-12-30 02:08:01
【问题描述】:
还有其他关于使用 javascript 验证电子邮件地址的问题。还有关于验证表格的问题。但是,我无法让我的代码正常工作,也找不到涵盖此特定问题的问题。
编辑
我完全理解,在实时网站中,服务器端验证至关重要。我也了解发送电子邮件确认的价值。 (我实际上有一个具有所有这些功能的网站)。我知道如何在 php 中编写垃圾邮件检查代码。
在这种情况下,我被要求验证电子邮件输入字段。我必须严格遵守 xhtml 1.0,因此不能使用“电子邮件”类型,并且不允许我使用服务器端脚本进行此分配。我无法组织电子邮件确认,必须通过 javascript 完全检查。
我希望这能澄清我的问题
我正在尝试为两件事验证表单。
检查所有字段是否都有数据。 查看是否输入了有效的电子邮件地址。
我能够验证表单字段的数据,但尝试合并电子邮件检查对我来说是个麻烦。
它以前发出警报,但不正确,现在它根本没有被调用(或者至少它的行为方式是这样)。
一旦我完成这项工作,我就需要专注于检查电子邮件地址是否匹配。但是,这是这个问题之外的问题。
我只专注于在javascript 中验证这一点。我不关心这个特定实例中的服务器端(这个问题之外的另一个问题)。谢谢。
function Validate()
{
var inputs = [document.getElementById('fname'),_
document.getElementById('lname'), document.getElementById('email1'),_
document.getElementById('email2')];
for(var i = 0; i<inputs.length; i++)
{
if(inputs[i].value == '')
{
alert('Please complete all required fields.');
return false;
}
else if ((id =='email1' || 'email2') &&_
(inputs[i].value!= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ )){
alert('Please enter a valid email address.');
return false;
}
}
}
<form onsubmit="return Validate()" action="" method="post" id="contactForm" >
<input type="text" name="fname" id="fname" />
<input type="text" name="lname" id="lname" />
<input type="text" name="email1" id="email1" />
<input type="text" name="email2" id="email2"/>
<input type="submit" value="submit" name="submit" />
</form>
附注 - 格式化换行的文本,是否可以(为了发布问题,添加和下划线并创建一个新行以提高可读性?在实际文本中,我没有这个!请告知是否有更简单的方法来格式化我的帖子代码。再次感谢。
编辑 2
当我注释掉它时它会起作用:
/*else if ((id =='email1' || id=='email2') && (inputs[i].value!= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ )){
alert('Please enter a valid email address.');
return false;
}*/
所以这有助于解决问题。
【问题讨论】:
标签: javascript function validation email-validation xhtml-1.0-strict