Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript onsubmit函数不适用于两个输入字段_Javascript_Validation_Alert_Onsubmit - Fatal编程技术网

javascript onsubmit函数不适用于两个输入字段

javascript onsubmit函数不适用于两个输入字段,javascript,validation,alert,onsubmit,Javascript,Validation,Alert,Onsubmit,我试图在不使用html5验证作为类的练习的情况下验证表单,但我一辈子都搞不懂它 如果电子邮件和/或名称无效/为空,我希望弹出一条警告消息 我已经到达了警报将从电子邮件或名称字段中弹出的位置,这取决于onsubmit函数中的第一个字段 任何想法都将不胜感激 document.getElementById("frmContact").onsubmit = function() { var inputEmail= document.getElementById("email").value,

我试图在不使用html5验证作为类的练习的情况下验证表单,但我一辈子都搞不懂它

如果电子邮件和/或名称无效/为空,我希望弹出一条警告消息

我已经到达了警报将从电子邮件或名称字段中弹出的位置,这取决于onsubmit函数中的第一个字段

任何想法都将不胜感激

document.getElementById("frmContact").onsubmit = function() {

    var inputEmail= document.getElementById("email").value,
        emailPattern = new RegExp("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$");
    if (inputEmail==="") {
        alert("Please enter your email.")
        return false;
    } else if (!emailPattern.test(inputEmail)){
        alert("Please enter a valid email address.");
        return false;
    } else {
        return true;
    };

    var inputName= document.getElementById("name").value,
        namePattern = new RegExp("^[A-Za-z]+$");
    if (inputName==="") {
        alert("Please enter your name.")
        return false;
     } else if (!namePattern.test(inputName)){
        alert("Please enter a valid name.");
        return false;
    } else {
    return true;
    };
};

验证第一个字段后,您将返回
,因此第二个字段永远不会被选中。取而代之的是,让一个局部变量在默认情况下设置为true,并将验证失败的任何一个字段设置为false,然后在最后返回它

    var valid = true;
    // ...
    if(inputEmail==="") {
        alert("Please enter your email.");
        valid = false;
    // ...

    return valid;
};

也许这不起作用,但概念可能是这样的

document.getElementById("frmContact").onsubmit = function() {

    var inputEmail= document.getElementById("email").value,
        emailPattern = new RegExp("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"),
        error = [],
        i = 0;

    if (inputEmail==="") {
        error.push("Please enter your email");
    } else if (!emailPattern.test(inputEmail)){
        error.push("Please enter a valid email address.");
    } 

    var inputName= document.getElementById("name").value,
        namePattern = new RegExp("^[A-Za-z]+$");
    if (inputName==="") {
        error.push("Please enter your name.")
     } else if (!namePattern.test(inputName)){
        error.push("Please enter a valid name.");
    } 

    if(typeof error !== 'undefined' && error.length > 0){
        alert("you submit the form correctly");
    } else {
        for(i = 0; i < error.length; i + 1){
            alert(error[i]);
        }
    }
};
document.getElementById(“frmContact”).onsubmit=function(){
var inputEmail=document.getElementById(“电子邮件”).value,
emailPattern=new RegExp(“^[A-Za-z0-9.\%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$”,
错误=[],
i=0;
如果(输入电子邮件==“”){
错误。推送(“请输入您的电子邮件”);
}如果(!emailPattern.test(inputEmail))则为else{
错误。推送(“请输入有效的电子邮件地址”);
} 
var inputName=document.getElementById(“名称”).value,
namePattern=newregexp(“^[A-Za-z]+$”;
如果(inputName==“”){
错误。推送(“请输入您的姓名”)
}else如果(!namePattern.test(inputName)){
错误。推送(“请输入有效名称”);
} 
if(错误类型!=='undefined'&&error.length>0){
警告(“您正确提交了表格”);
}否则{
对于(i=0;i
只要
返回false
,函数就会结束,因此其余部分不会执行。如果要对所有坏字段发出警报,请在所有警报后执行返回操作。