HTML表单赢得';t使用Javascript验证后提交

HTML表单赢得';t使用Javascript验证后提交,javascript,html,forms,Javascript,Html,Forms,我对使用Javascript以HTML提交表单有疑问 我的Javascript如下所示: function validateForm() { var a= document.forms["myForm"]["pname"].value; var b = document.forms["myForm"]["pemail"].value; var c = document.forms["myForm"]["pdob"].value; v

我对使用Javascript以HTML提交表单有疑问

我的Javascript如下所示:

function validateForm() {
        var a= document.forms["myForm"]["pname"].value;
        var b = document.forms["myForm"]["pemail"].value;
        var c = document.forms["myForm"]["pdob"].value;
        var d = document.forms["myForm"]["unit of choice"].value;
        var els = document.forms["myForm"].elements["Issue[]"];
        var f = document.forms["myForm"]["description"].value;
        var g = document.forms["myForm"]["pdatee"].value;
        var h = document.forms["myForm"]["ptimee"].value;

        var isValid = false;
        for (i = 0; i < els.length; i += 1) {
        if (els[i].checked) {
            isValid = true;
            }
        }


        if (a == null || a == "") {
            alert("Your name cannot be blank");
            }
        if (b == null || b == "") {
            alert("Enter a valid email address.");
            }
        if (c == null || c == "") {
            alert("Enter a valid Date of Birth. (dd/mm/yyyy)");
            }
        if (d == null || d == "") {
            alert("Unit and Tutor have to be selected.");
            }

        if (!isValid) {
            alert("Must select an Issue.");
            }

        if (f == null || f == "") {
            alert("Must fill in a description.");
            }

        if (f == null || f == "") {
            alert("Must fill in a description.");
            }
        if (g == null || g == "") {
            alert("Preferred date must follow the format set.");
            }
        if (h == null || h == "") {
            alert("Preferred time must follow the format set.");
            }

        return false;


    }
函数validateForm(){
var a=document.forms[“myForm”][“pname”].value;
var b=document.forms[“myForm”][“pemail”]值;
var c=document.forms[“myForm”][“pdob”].value;
var d=document.forms[“myForm”][“选择单位”]。值;
var els=document.forms[“myForm”]。elements[“Issue[]”;
var f=document.forms[“myForm”][“description”].value;
var g=document.forms[“myForm”][“pdatee”].value;
var h=document.forms[“myForm”][“ptimee”].value;
var isValid=false;
对于(i=0;i
这是我的表单,其属性为HTML:

<form name="myForm" onsubmit="return validateForm()" method="post" action="confirm.html" novalidate="novalidate" >

当我在填写完所有需求后单击Submit按钮(这样所有内容都不会返回false)时,表单不会自行提交

在阅读了关于returnfalse的内容之后,我尝试添加了else{return true;},但它所做的只是在没有任何验证的情况下提交我的表单


我该怎么做才能使它只使用Javascript和/或HTML?谢谢大家!

您需要检查您的输入是否通过了测试。 您可以通过使用var
isValid
来实现这一点

function validateForm() {
    var a= document.forms["myForm"]["pname"].value;
    var b = document.forms["myForm"]["pemail"].value;
    var c = document.forms["myForm"]["pdob"].value;
    var d = document.forms["myForm"]["unit of choice"].value;
    var els = document.forms["myForm"].elements["Issue[]"];
    var f = document.forms["myForm"]["description"].value;
    var g = document.forms["myForm"]["pdatee"].value;
    var h = document.forms["myForm"]["ptimee"].value;

    var isValid = false;
    for (i = 0; i < els.length; i += 1) {
    if (els[i].checked) {
        isValid = true;
        }
    }


    if (a == null || a == "") {
        isValid=false;
        alert("Your name cannot be blank");
        }
    if (b == null || b == "") {
        isValid=false;
        alert("Enter a valid email address.");
        }
    if (c == null || c == "") {
        isValid=false;
        alert("Enter a valid Date of Birth. (dd/mm/yyyy)");
        }
    if (d == null || d == "") {
        isValid=false;
        alert("Unit and Tutor have to be selected.");
        }

    if (!isValid) {
        isValid=false;
        alert("Must select an Issue.");
        }

    if (f == null || f == "") {
        isValid=false;
        alert("Must fill in a description.");
        }

    if (f == null || f == "") {
        isValid=false;
        alert("Must fill in a description.");
        }
    if (g == null || g == "") {
        isValid=false;
        alert("Preferred date must follow the format set.");
        }
    if (h == null || h == "") {
        isValid=false;
        alert("Preferred time must follow the format set.");
        }

    return isValid;


}
如果其中一个条件未满足,则只需将
isValid
设置为
false
,然后返回
isValid

function validateForm() {
    var a= document.forms["myForm"]["pname"].value;
    var b = document.forms["myForm"]["pemail"].value;
    var c = document.forms["myForm"]["pdob"].value;
    var d = document.forms["myForm"]["unit of choice"].value;
    var els = document.forms["myForm"].elements["Issue[]"];
    var f = document.forms["myForm"]["description"].value;
    var g = document.forms["myForm"]["pdatee"].value;
    var h = document.forms["myForm"]["ptimee"].value;

    var isValid = false;
    for (i = 0; i < els.length; i += 1) {
    if (els[i].checked) {
        isValid = true;
        }
    }


    if (a == null || a == "") {
        isValid=false;
        alert("Your name cannot be blank");
        }
    if (b == null || b == "") {
        isValid=false;
        alert("Enter a valid email address.");
        }
    if (c == null || c == "") {
        isValid=false;
        alert("Enter a valid Date of Birth. (dd/mm/yyyy)");
        }
    if (d == null || d == "") {
        isValid=false;
        alert("Unit and Tutor have to be selected.");
        }

    if (!isValid) {
        isValid=false;
        alert("Must select an Issue.");
        }

    if (f == null || f == "") {
        isValid=false;
        alert("Must fill in a description.");
        }

    if (f == null || f == "") {
        isValid=false;
        alert("Must fill in a description.");
        }
    if (g == null || g == "") {
        isValid=false;
        alert("Preferred date must follow the format set.");
        }
    if (h == null || h == "") {
        isValid=false;
        alert("Preferred time must follow the format set.");
        }

    return isValid;


}
函数validateForm(){
var a=document.forms[“myForm”][“pname”].value;
var b=document.forms[“myForm”][“pemail”]值;
var c=document.forms[“myForm”][“pdob”].value;
var d=document.forms[“myForm”][“选择单位”]。值;
var els=document.forms[“myForm”]。elements[“Issue[]”;
var f=document.forms[“myForm”][“description”].value;
var g=document.forms[“myForm”][“pdatee”].value;
var h=document.forms[“myForm”][“ptimee”].value;
var isValid=false;
对于(i=0;i
在提交功能结束时,您将返回:

    return false;
}
无论验证是否成功。这将阻止表单提交。确保您在此处使用的是
返回真值
,并使用标志正确验证,然后如果标志是
真值
返回假值

您已经有一个标志
isValid
。将上述行替换为:

    return isValid;
}

因此
返回false在函数
validateForm
中,为什么要将
onsubmit
设置为
onsubmit=“return validateForm()”
?它应该是
validateForm
。否则,您的
return validateForm
将返回
undefined
,或者在您的情况下返回
false
,这将阻止表单提交。我编辑了我的帖子。谢谢!我认为我必须返回false;让警报弹出,而不提交表单,但结果不是这样case@Raph谢谢你,伙计。你接受了答案,让我高兴极了!祝你一切顺利!☺非常感谢。我认为我必须返回false;让警报弹出而不提交表单,但事实并非如此。