Javascript 联系人表单中的自定义验证

Javascript 联系人表单中的自定义验证,javascript,html,Javascript,Html,我试图创建一些自定义验证错误,但当我单击我的按钮时,它不会显示错误并发送邮件,它会一直显示默认的html验证消息 函数验证{ 功能电子邮件(){ 如果(form.email.value==“”){ 警报(“Ingrear un correo”); form.email.focus(); 返回false; } 变量re=/^[\w]+$/; 如果(!重新测试(form.email.value)){ 警报(“无效格式”); form.email.focus(); 返回false; } 返回true

我试图创建一些自定义验证错误,但当我单击我的按钮时,它不会显示错误并发送邮件,它会一直显示默认的html验证消息

函数验证{
功能电子邮件(){
如果(form.email.value==“”){
警报(“Ingrear un correo”);
form.email.focus();
返回false;
}
变量re=/^[\w]+$/;
如果(!重新测试(form.email.value)){
警报(“无效格式”);
form.email.focus();
返回false;
}
返回true;
}
函数名(){
如果(form.name.value==“”){
警报(“Ingrear un nombre”);
form.name.focus();
返回false;
}
返回true;
}
功能味精{
如果(form.message.value==“”){
警惕(“安格尔苏领事”);
form.message.focus();
返回false;
}
if(!re.test(form.message.value)){
警报(“错误,Ingrear solo caracteres alfanumericos”);
form.message.focus();
返回false;
}
返回true;
}
}
函数validateEmail(){
var emailID=document.form.email.value;
atpos=emailID.indexOf(“@”);
dotpos=emailID.lastIndexOf(“.”);
if(atpos<1 | |(dotpos-atpos<2)){
警报(“Por faor INGREAR un formato de email valido”)
document.form.email.focus();
返回false;
}
返回(真);
}

使用onsubmit,修复语法错误并调用验证函数 你需要做几件事

  • 在表单中添加
    onsubmit
    属性<代码>提交将执行 您的表单已提交,因此如果您的 验证后,该表单将不会提交

  • 修复表单验证文件中的语法错误。根据初始检查,函数名
    msg
    validate
    后缺少括号

    function msg() { ... }
    function validate() { ... }
    
    您还有一个
    if
    关键字,该关键字的大写不正确(请参见
    name()
    的定义)。在添加括号并取消关键字大写后,JavaScript不应再抛出任何语法错误

    注意:您可能仍然有运行时错误--我没有检查您的 实际逻辑

  • 在表单验证JavaScript文件中,实际调用函数。您定义了它们,但从未实际调用它们。您可能应该在单独的if语句中调用它们,并在任何验证失败时返回false

    if (!validate() || !msg() || ....) {
        return false; 
    }
    

  • 执行上述操作将阻止表单提交,并允许显示验证。

    从何处调用
    validate()
    msg()
    和其他函数?哦,有些函数中没有括号,有几个语法错误<代码>函数消息,
    函数验证
    必须有括号…如果你想做咖喱,你可能会看到非常感谢。它可以工作(有点),但需要在我的代码中修复一些小东西。