我到处寻找答案,我真的无法弄清楚我做错了什么。我意识到这可能是一个愚蠢的错误,但我绝对绞尽脑汁。
我有一个提交到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) *</h3><p class="formfield"><input class=mainForm type=text name=field_1 id=field_1 size='40' value=''></p>
<h3>Your gender *</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 *</h3><p class="formfield"><input class=mainForm type=email name=field_2 id=field_2 size=40 value=""></p>
<h3>Phone Number *</h3><p class="formfield"><input class=mainForm type=text name=field_11 id=field_11 size='40' value=''></p>
<h3>Indicate Trip & Date *</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 *</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 *</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>
我意识到这可能是非常愚蠢的事情,但我不能为我的生活弄清楚它是什么。
实际上,表单只需要验证一个字段。它正在使用的网站正在提交大量的空白页面,因此只需验证一个字段就可以了。
任何帮助都会很棒!
由于 路易斯
答案 0 :(得分:1)
可以添加所需内容,即:
<input type="text" name="Pname" maxlength="50" value="" required aria-required=true />
答案 1 :(得分:0)
您是否在任何地方都包含对“validateField”的引用?
答案 2 :(得分:0)
您能告诉我们您的validateField功能吗?我认为这个功能可能不起作用。
顺便说一句,我认为把JS放到像这样的HTML中并不是很好,你应该创建一个你包含的文件:
<script src="js/validation.js"></script>
我认为,您可以使用HTML中的数据做更全球化的事情。通过这样做,您可以只为所有表单创建一个JS代码。
答案 3 :(得分: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;
}
您确定没有输入错误 - 您正在测试的所有字段是否都在页面上实际定义了?