带Javascript的表单验证-不工作

带Javascript的表单验证-不工作,javascript,html,forms,Javascript,Html,Forms,我有以下表单,使用HTML和Javascript验证完成 var submitOK=true; function validate(){ submitOK=true; checkName(); checkSurname(); checkCourse(); checkDate(); checkEmail(); if(submitOK == false) { return false;} } function checkName() { var n

我有以下表单,使用HTML和Javascript验证完成

var submitOK=true;
function validate(){
    submitOK=true;
    checkName();
    checkSurname();
checkCourse();
checkDate();
checkEmail();


   if(submitOK == false) { 
  return false;}
}

function checkName() {
     var name = document.getElementById("name");
  if(myform.name.value.length==0)
  {
    document.getElementById("checkname").innerHTML="Please, enter a valid name";
    submitOK=false;
  }
  }
(此处填写完整的代码)

必须填写课程、日期、姓名、姓氏和电子邮件。我不知道为什么我的代码是错误的,以及如何修复它

-如果其中一个字段不完整,我希望出现一条错误消息。现在,即使其中一个表单未完成,表单也会运行并工作

-格式正确的电子邮件(不带正则表达式)


提前感谢!:)

当验证通过时,您需要返回true,以便进行更改

if(submitOK == false) { 
  return false;}


当验证通过时,您需要返回true,以便进行更改

if(submitOK == false) { 
  return false;}


如果您只需要确保所有字段都已填充,为什么不在输入类型上使用required关键字呢。
对于下拉列表,您可以禁用选择选项,这样您就不需要检查用户是否选择了默认值。

如果您只需要确保所有字段都已填充,为什么不在您的输入类型上使用required关键字呢。
对于下拉列表,您可以禁用选择选项,这样您就不需要检查用户是否选择了默认值。

我稍微简化了您的代码。这对我有用。要记住的关键一点是,提交函数必须返回true才能提交,返回false才能停止提交

var submitOK=true;

function validate(){
    submitOK=true;
    checkName();
    checkSurname();
    checkCourse();
    checkDate();
    checkEmail();


    return submitOK;
}

function checkName() {
    if( document.getElementById("name").value.length==0)
    {
        document.getElementById("checkname").innerHTML="Please, enter a valid name";
        submitOK=false;
    }
}

function checkSurname() {

    if(document.getElementById("surname").value.length==0)
    {
        document.getElementById("checksurname").innerHTML="Please, enter a valid surname";
        submitOK=false;
    }
}

function checkEmail() {
    if(document.getElementById("email").value.length==0)
    {
        document.getElementById("checkemail").innerHTML="Please, enter an email";
        submitOK=false;
    }
}   


function checkCourse() {

    if(document.getElementById("course").selectedIndex < 1 ) {
        document.getElementById("checkcourse").innerHTML="Please, select a course";
        submitOK=false;
    }
} 

function checkDate() {

    if(document.getElementById("date").selectedIndex < 1) {
        document.getElementById("checkdate").innerHTML="Please, select a date";
        submitOK=false;
    }

}
var submitOK=true;
函数验证(){
submitOK=true;
checkName();
check姓氏();
checkCourse();
checkDate();
检查电子邮件();
返回submitOK;
}
函数checkName(){
if(document.getElementById(“name”).value.length==0)
{
document.getElementById(“checkname”).innerHTML=“请输入有效名称”;
submitOK=false;
}
}
函数check姓氏(){
if(document.getElementById(“姓氏”).value.length==0)
{
document.getElementById(“CheckName”).innerHTML=“请输入有效的姓氏”;
submitOK=false;
}
}
函数checkEmail(){
if(document.getElementById(“email”).value.length==0)
{
document.getElementById(“checkemail”).innerHTML=“请输入电子邮件”;
submitOK=false;
}
}   
函数checkCourse(){
if(document.getElementById(“课程”).selectedIndex<1){
document.getElementById(“checkcourse”).innerHTML=“请选择一门课程”;
submitOK=false;
}
} 
函数checkDate(){
if(document.getElementById(“日期”).selectedIndex<1){
document.getElementById(“checkdate”).innerHTML=“请选择一个日期”;
submitOK=false;
}
}

我简化了您的代码。这对我有用。要记住的关键一点是,提交函数必须返回true才能提交,返回false才能停止提交

var submitOK=true;

function validate(){
    submitOK=true;
    checkName();
    checkSurname();
    checkCourse();
    checkDate();
    checkEmail();


    return submitOK;
}

function checkName() {
    if( document.getElementById("name").value.length==0)
    {
        document.getElementById("checkname").innerHTML="Please, enter a valid name";
        submitOK=false;
    }
}

function checkSurname() {

    if(document.getElementById("surname").value.length==0)
    {
        document.getElementById("checksurname").innerHTML="Please, enter a valid surname";
        submitOK=false;
    }
}

function checkEmail() {
    if(document.getElementById("email").value.length==0)
    {
        document.getElementById("checkemail").innerHTML="Please, enter an email";
        submitOK=false;
    }
}   


function checkCourse() {

    if(document.getElementById("course").selectedIndex < 1 ) {
        document.getElementById("checkcourse").innerHTML="Please, select a course";
        submitOK=false;
    }
} 

function checkDate() {

    if(document.getElementById("date").selectedIndex < 1) {
        document.getElementById("checkdate").innerHTML="Please, select a date";
        submitOK=false;
    }

}
var submitOK=true;
函数验证(){
submitOK=true;
checkName();
check姓氏();
checkCourse();
checkDate();
检查电子邮件();
返回submitOK;
}
函数checkName(){
if(document.getElementById(“name”).value.length==0)
{
document.getElementById(“checkname”).innerHTML=“请输入有效名称”;
submitOK=false;
}
}
函数check姓氏(){
if(document.getElementById(“姓氏”).value.length==0)
{
document.getElementById(“CheckName”).innerHTML=“请输入有效的姓氏”;
submitOK=false;
}
}
函数checkEmail(){
if(document.getElementById(“email”).value.length==0)
{
document.getElementById(“checkemail”).innerHTML=“请输入电子邮件”;
submitOK=false;
}
}   
函数checkCourse(){
if(document.getElementById(“课程”).selectedIndex<1){
document.getElementById(“checkcourse”).innerHTML=“请选择一门课程”;
submitOK=false;
}
} 
函数checkDate(){
if(document.getElementById(“日期”).selectedIndex<1){
document.getElementById(“checkdate”).innerHTML=“请选择一个日期”;
submitOK=false;
}
}

看一看:看一看:因为我不得不用Javascript来做。所需的关键字是HTML5,不是吗?因为我被迫使用Javascript。所需的关键字是HTML5,不是吗?因此,我从“课程”和“日期”下拉列表中选择选项,其余字段会显示错误消息,但页面刷新太快,无法读取。如果某些字段已填充,则会显示消息,但页面会刷新。因此,我从“课程”和“日期”下拉列表中选择选项,其余字段会显示错误消息,但页面刷新过快,无法读取。如果某些字段已填充,则会显示消息,但页面会刷新。使用正则表达式,这里有大量示例。在搜索中使用正则表达式、javascript和电子邮件。使用正则表达式,还有大量的例子。在搜索中使用正则表达式、javascript和电子邮件。