0

我到处寻找答案,我真的不知道我做错了什么。我意识到这可能是一个愚蠢的错误,但我绝对为此绞尽脑汁。

我有一个提交到 PHP 文件的脚本。发送时的脚本应该验证以确保填写了必填字段,如果没有填写,它应该弹出一个 Javascript 框,基本上告诉他们他们没有填写正确的字段。不幸的是,此刻,它只是发送。

代码如下:

    <div id="formcontainer">
<div class="formcontent">
<h3>Fields marked (*) are required</h3>The amount of money that Affecting Real Change is able to raise is dependent on the generosity of donors and our volunteer's fantastic fundraising. All of the money raised goes towards project building materials. Without these funds we really wouldn't be able to do what we do.
</div>
    <form method=post enctype=multipart/form-data action=formurl.php onSubmit="return validatePage1();">

    <h3>Full Name (Insert as it appears on your passport)&nbsp;*</h3><p class="formfield"><input class=mainForm type=text name=field_1 id=field_1 size='40' value=''></p>

<h3>Your gender&nbsp;*</h3><select class=mainForm name=field_7 id=field_7><option value=''></option><option value="Male">Male</option><option value="Female">Female</option></select>   

<h3>Email Address&nbsp;*</h3><p class="formfield"><input class=mainForm type=email name=field_2 id=field_2 size=40 value=""></p>

    <h3>Phone Number&nbsp;*</h3><p class="formfield"><input class=mainForm type=text name=field_11 id=field_11 size='40' value=''></p>

    <h3>Indicate Trip & Date&nbsp;*</h3><p class="formfield"><input class=mainForm type=text name=field_3 id=field_3 size='40' value=''></p>

<h3>Please type any more info here&nbsp;*</h3><textarea class=message  name=field_5 id=field_5 rows=7 cols=40></textarea>

<h3>I have read your <a href="http://www.affectingrealchange.org/terms-and-conditions/" target="_blank">Terms and Conditions</a> and agree&nbsp;*</h3><select class=mainForm name=field_10 id=field_10><option value=''></option><option value="Yes">Yes</option><option value="No">No</option></select>

        <!-- end of this page -->

        <!-- page validation -->
        <SCRIPT type=text/javascript>

            function validatePage1()
            {
                retVal = true;
                if (validateField('field_1','fieldBox_1','text',1) == false)
 retVal=false;
if (validateField('field_2','fieldBox_2','email',1) == false)
 retVal=false;
if (validateField('field_3','fieldBox_3','textarea',1) == false)
 retVal=false;
if (validateField('field_5','fieldBox_5','textarea',1) == false)
 retVal=false;
if (validateField('field_7','fieldBox_7','menu',1) == false)
 retVal=false;
if (validateField('field_10','fieldBox_10','menu',1) == false)
 retVal=false;
if (validateField('field_11','fieldBox_10','menu',1) == false)
 retVal=false;

                if(retVal == false)
                {
                    alert('Please correct the errors.  Fields marked with an asterisk (*) are required');
                    return false;
                }
                return retVal;
            }

        </SCRIPT>

        <!-- end page validaton -->



        <li class="mainForm">
                        <br/><p class="submit"><input id="saveForm" class="submit" type="submit" value="Submit" /></p>
                </li>

            </form>

我意识到这可能是一件非常愚蠢的事情,但我终其一生都无法弄清楚它是什么。

实际上,表单只需要验证一个字段。它正在使用的网站收到大量空白页提交,因此只需验证一个字段就可以了。

任何帮助都会很棒!

谢谢刘易斯

4

4 回答 4

1

在您的输入中,您可以添加所需的内容,即:

<input type="text" name="Pname" maxlength="50" value="" required aria-required=true />

于 2012-05-14T16:49:26.297 回答
0

您是否在任何地方都引用了“validateField”?

于 2012-05-14T16:50:27.557 回答
0

如果validateField调用抛出异常,它将绕过validatePage1. 尝试将测试包含在 try/catch 块中以查看发生了什么,例如

function validatePage1()
{
    retVal = true;
    try {
    if (validateField('field_1','fieldBox_1','text',1) == false)
        retVal=false;
    ...
    if (validateField('field_11','fieldBox_10','menu',1) == false)
    retVal=false;
    } catch (e) { alert(e); }

   if(retVal == false)
   {
        alert('Please correct the errors.  Fields marked with an asterisk (*) are required');
   }
   return retVal;
}

你确定你没有拼写错误——你测试的所有字段都在页面上定义了吗?

于 2012-05-14T20:22:42.210 回答
0

你能告诉我们你的 validateField 函数吗?我认为可能是这个功能不起作用。

顺便说一句,我认为像这样将 JS 放入 HTML 不是很好,您应该创建一个包含这样的文件:

<script src="js/validation.js"></script>

而且我认为,您可以使用 HTML 中的数据做一些更全球化的事情。通过这样做,您可能只有一个 JS 代码用于所有表单。

于 2012-05-14T17:07:26.673 回答