表单验证错误...显示错误,但在错误框中单击确定,触发表单提交...

时间:2015-01-18 04:26:39

标签: javascript html validation

我试图在我的网站租借表单上添加表单验证/错误消息。我不确定这里有什么问题。当我单击提交(如果表单为空)时,错误框会显示并说出错误,但是,一旦您在此错误框中单击“确定”,它就会提交表单并加载感谢页面。 '返回false'在功能似乎没有工作。我在单击“确定”时尝试关闭错误框,然后返回到未发送的表单以修复/填写缺少的字段。

这是一个非常大的形式,所以我只是显示关键区域进行审查...... 非常感谢你们的帮助!

<script type="text/javascript">

function checkforblank(){

var errormessage = "";

if (document.getElementById('Full Name').value == "") {
    errormessage += "Please enter your Full Name \n";
    }

if (document.getElementById('Address').value == "") {
    errormessage += "Please enter your Address \n";
    }

if (document.getElementById('Home Phone').value == "") {
    errormessage += "Please enter your Home Phone Number \n";
    }

if (document.getElementById('EventPhone').value == "") {
    errormessage += "Please enter your Event Phone Number \n";
    }

if (document.getElementById('Email Address').value == "") {
    errormessage += "Please enter your Email Address \n";
    }

if (document.getElementById('Number').value == "") {
    errormessage += "Please enter your Card Number \n";
    }

if (document.getElementById('NumberB').value == "") {
    errormessage += "Please enter your Card Number \n";
    }

if (document.getElementById('NumberC').value == "") {
    errormessage += "Please enter your Card Number \n";
    }

if (document.getElementById('NumberD').value == "") {
    errormessage += "Please enter your Card Number \n";
    }

if (document.getElementById('ExpMonth').value == "") {
    errormessage += "Please enter your Cards Exp Date MMYY \n";
    }

if (document.getElementById('ExpYear').value == "") {
    errormessage += "Please enter your Cards Billing Zip \n";
    }

if (document.getElementById('Accept Rental Agreement').value == "") {
    errormessage += "Please type ACCEPT in the box \n";
    }   

if (errormessage != "") {
    alert(errormessage); 
    return false;
    }else return true;                                          
}

以下是提交按钮中使用的代码:

 <input type=submit onclick="checkforblank();" value='RESERVE NOW' style="font-family: Arial" class="style106">

以下是表格起始代码:

 <form onsubmit="return checkforblank();" method="post" action="http://jumpnplayparty.com/ftools/process.php"  language="JavaScript" name="FrontPage_Form1">

我正在学习...对不起代码很乱:p搜索了几个关于这个主题的帖子/几个youtube视频,但是经过10多个小时修改表单后仍然没有运气......请帮忙

请在此处查看完整表单:https://ink.mysitehosted.com/~bounce/MAMoonwalkRentals/Mobile/reserve_mobile_form.htm

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

脚本中存在语法错误,例如:在您的函数FrontPage_Form1_Validator中,行

if (theForm.Full Name.value == "")

是错误的 - 你不能简单地在那个表达式中有一个空格字符,这会使它无效。

如果表单元素名称中有空格,则必须使用以下语法来解决它们:theForm["Full Name"].value - 这是访问JS中名称中包含空格的属性的唯一方法。