形式方法赢得';在执行JavaScript验证后,无法运行
几天来,我一直在努力解决这个问题——我创建了一个表单,并使用JavaScript在提交时验证输入 如果验证通过,则for具有要运行的方法;方法=“POST”。JavaScript似乎阻止了该方法的运行 在此方面的任何帮助都将不胜感激,我使用的代码如下:形式方法赢得';在执行JavaScript验证后,无法运行,javascript,forms,Javascript,Forms,几天来,我一直在努力解决这个问题——我创建了一个表单,并使用JavaScript在提交时验证输入 如果验证通过,则for具有要运行的方法;方法=“POST”。JavaScript似乎阻止了该方法的运行 在此方面的任何帮助都将不胜感激,我使用的代码如下: <script type="text/javascript"> function validateForm(theForm) { var reason = ""; reason += validateUsername(theForm
<script type="text/javascript">
function validateForm(theForm) {
var reason = "";
reason += validateUsername(theForm.username)+'<br/>';
reason += validatePassword(theForm.pwd)+'<br/>';
reason += validateEmail(theForm.email)+'<br/>';
reason += validatePhone(theForm.phone)+'<br/>';
reason += validateEmpty(theForm.from)+'<br/>';
reason += validateEmpty(theForm.firstname)+'<br/>';
reason += validateEmpty(theForm.lastname)+'<br/>';
reason += validateEmpty(theForm.address1)+'<br/>';
reason += validateEmpty(theForm.address2)+'<br/>';
reason += validateEmpty(theForm.city)+'<br/>';
reason += validateEmpty(theForm.postcode)+'<br/>';
reason += validateEmpty(theForm.daytelephone)+'<br/>';
reason += validateEmpty(theForm.eveningtelephone)+'<br/>';
reason += validateEmpty(theForm.contact)+'<br/>';
reason += validateEmpty(theForm.verifycontact)+'<br/>';
reason += validateEmpty(theForm.coverletter)+'<br/>';
reason += validateEmpty(theForm.cv_file)+'<br/>';
reason += validateEmpty(theForm.resume);
if (reason != "") {
document.getElementById('box1').style.visibility= 'visible';
document.getElementById('box1').innerHTML = reason ;
return false;
}
return true;
}
function validateEmpty(fld) {
var error = "";
if (fld.value.length == 0) {
fld.style.background = 'Yellow';
error = "The required field has not been filled in.\n"
} else {
fld.style.background = 'White';
}
return error;
}
function validateUsername(fld) {
var error = "";
var illegalChars = /\W/; // allow letters, numbers, and underscores
if (fld.value == "") {
fld.style.background = 'Yellow';
error = "You didn't enter a username.\n";
} else if ((fld.value.length < 5) || (fld.value.length > 15)) {
fld.style.background = 'Yellow';
error = "The username is the wrong length.\n";
} else if (illegalChars.test(fld.value)) {
fld.style.background = 'Yellow';
error = "The username contains illegal characters.\n";
} else {
fld.style.background = 'White';
}
return error;
}
function validatePassword(fld) {
var error = "";
var illegalChars = /[\W_]/; // allow only letters and numbers
if (fld.value == "") {
fld.style.background = 'Yellow';
error = "You didn't enter a password.\n";
} else if ((fld.value.length < 7) || (fld.value.length > 15)) {
error = "The password is the wrong length. \n";
fld.style.background = 'Yellow';
} else if (illegalChars.test(fld.value)) {
error = "The password contains illegal characters.\n";
fld.style.background = 'Yellow';
} else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) {
error = "The password must contain at least one numeral.\n";
fld.style.background = 'Yellow';
} else {
fld.style.background = 'White';
}
return error;
}
function trim(s)
{
return s.replace(/^\s+|\s+$/, '');
}
function validateEmail(fld) {
var error="";
var tfld = trim(fld.value); // value of field with whitespace trimmed off
var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
if (fld.value == "") {
fld.style.background = 'Yellow';
error = "You didn't enter an email address.\n";
} else if (!emailFilter.test(tfld)) { //test email for illegal characters
fld.style.background = 'Yellow';
error = "Please enter a valid email address.\n";
} else if (fld.value.match(illegalChars)) {
fld.style.background = 'Yellow';
error = "The email address contains illegal characters.\n";
} else {
fld.style.background = 'White';
}
return error;
}
function validatePhone(fld) {
var error = "";
var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');
if (fld.value == "") {
error = "You didn't enter a phone number.\n";
fld.style.background = 'Yellow';
} else if (isNaN(parseInt(stripped))) {
error = "The phone number contains illegal characters.\n";
fld.style.background = 'Yellow';
} else if (!(stripped.length == 10)) {
error = "The phone number is the wrong length. Make sure you included an area code.\n";
fld.style.background = 'Yellow';
}
return error;
}
</script>
<form action="index2.php" onsubmit="return validateForm(adminForm);" method="POST" name="adminForm" enctype="multipart/form-data" >
<input type="hidden" name="id" value="{mxtvalue=id}" />
<input type="hidden" name="option" value="{mxtvalue=option}" />
<input type="hidden" name="Itemid" value="{mxtvalue=Itemid}" />
<input type="hidden" name="task" value="send" />
<table >
<tbody>
<tr>
<td><label for="username">Your user name:</label></td>
<td><input name="username" type="text" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><label for="pwd">Your password</label></td>
<td><input name="pwd" size="35" maxlength="25" type="password"></td>
</tr>
<tr>
<td><label for="email">Your email:</label></td>
<td><input name="email" size="35" maxlength="30" type="text"></td>
</tr>
<tr>
<td><label for="phone">Your telephone number:</label></td>
<td><input name="phone" size="35" maxlength="25" type="text"></td>
</tr>
<tr>
<td>
<label for="from">Where are you :</label></td>
<td><input name="from" size="35" maxlength="50" type="text"></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_FIRSTNAME}</b></td>
<td><input type="text" name="firstname" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_LASTNAME}</b></td>
<td><input type="text" name="lastname" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_ADDRESS1}</b></td>
<td><input type="text" name="address1" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_ADDRESS2}</b></td>
<td><input type="text" name="address2" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_CITY}</b></td>
<td><input type="text" name="city" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_ZIPCODE}</b></td>
<td><input type="text" name="postcode" class="postcode" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_DAYTELEPHONE}</b></td>
<td><input type="text" name="daytelephone" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_EVENINGTELEPHONE}</b></td>
<td><input type="text" name="eveningtelephone" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_APPLICANTEMAIL}</b></td>
<td><input type="text" name="contact" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td><b>{mxtlang=_JL_APPLICANTEMAIL}</b></td>
<td><input type="text" name="verifycontact" class="inputbox" size="40" value="" /></td>
</tr>
<tr>
<td valign="top"><b>{mxtlang=_JL_COVER_LETTER}</b></td>
<td>
<textarea class="inputbox" name="coverletter" id="coverletter" cols="50" rows="10"></textarea>
<br />{mxtlang=_JL_CV_FILE}<input type="file" class="inputbox" name="cv_file" id="cv_file" />
</td>
</tr>
<tr>
<td valign="top"><b>{mxtlang=_JL_RESUME}</b></td>
<td><textarea class="inputbox" name="resume" id="resume" cols="50" rows="10"></textarea></td>
</tr>
</table>
<table>
<tr>
<td>All</td>
<td>Morning</td>
<td>Afternoon</td>
<td>Evening</td>
</tr>
<tr>
<td>Mon</td>
<td><input type="checkbox" name="monmorning" value="Mon-Morning" /></td>
<td><input type="checkbox" name="monafternoon" value="Mon-Afternoon" /></td>
<td><input type="checkbox" name="monevening" value="Mon-Evening" /></td>
</tr>
<tr>
<td>Tue</td>
<td><input type="checkbox" name="tuemorning" value="Tue-Morning" /></td>
<td><input type="checkbox" name="tueafternoon" value="Tue-Afternoon" /></td>
<td><input type="checkbox" name="tueevening" value="Tue-Evening" /></td>
</tr>
<tr>
<td>Wed</td>
<td><input type="checkbox" name="wedmorning" value="Wed-Morning" /></td>
<td><input type="checkbox" name="wedafternoon" value="Wed-Afternoon" /></td>
<td><input type="checkbox" name="wedevening" value="Wed-Evening" /></td>
</tr>
<tr>
<td>Thu</td>
<td><input type="checkbox" name="thumorning" value="Thu-Morning" /></td>
<td><input type="checkbox" name="thuafternoon" value="Thu-Afternoon" /></td>
<td><input type="checkbox" name="thuevening" value="Thu-Evening" /></td>
</tr>
<tr>
<td>Fri</td>
<td><input type="checkbox" name="frimorning" value="Fri-Morning" /></td>
<td><input type="checkbox" name="friafternoon" value="Fri-Afternoon" /></td>
<td><input type="checkbox" name="frievening" value="Fri-Evening" /></td>
</tr>
<tr>
<td>Sat</td>
<td><input type="checkbox" name="satmorning" value="Sat-Morning" /></td>
<td><input type="checkbox" name="satafternoon" value="Sat-Afternoon" /></td>
<td><input type="checkbox" name="satevening" value="Sat-Evening" /></td>
</tr>
<tr>
<td>Sun</td>
<td><input type="checkbox" name="sunmorning" value="Sun-Morning" /></td>
<td><input type="checkbox" name="sunafternoon" value="Sun-Afternoon" /></td>
<td><input type="checkbox" name="sunevening" value="Sun-Evening" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="sendbtn" class="button" value="{mxtlang=_JL_SEND_APPLICATION}" /></td>
<td> </td>
</tr>
</tbody>
</table>
</form>
<div style="visibility:hidden" id="box1">
</div>
函数validateForm(表单){
var理性=”;
原因+=validateUsername(theForm.username)+'
';
原因+=验证密码(theForm.pwd)+'
';
原因+=validateEmail(theForm.email)+'
';
reason+=validatePhone(theForm.phone)+'
';
reason+=validateEmpty(form.from)+'
';
reason+=validateEmpty(form.firstname)+'
';
reason+=validateEmpty(theForm.lastname)+'
';
原因+=validateEmpty(格式地址1)+'
';
原因+=validateEmpty(格式地址2)+'
';
原因+=validateEmpty(form.city)+'
';
原因+=validateEmpty(格式邮政编码)+'
';
reason+=validateEmpty(form.daytelephone)+'
';
原因+=validateEmpty(form.eveningtelephone)+'
';
原因+=validateEmpty(form.contact)+'
';
原因+=validateEmpty(form.verifycontact)+'
';
reason+=validateEmpty(封面信格式)+'
';
reason+=validateEmpty(form.cv_文件)+'
';
原因+=validateEmpty(表格resume);
如果(原因!=“”){
document.getElementById('box1').style.visibility='visible';
document.getElementById('box1').innerHTML=reason;
返回false;
}
返回true;
}
函数validateEmpty(fld){
var误差=”;
如果(fld.value.length==0){
fld.style.background='黄色';
error=“所需字段尚未填写。\n”
}否则{
fld.style.background='白色';
}
返回误差;
}
函数validateUsername(fld){
var误差=”;
var illegalChars=/\W//;//允许使用字母、数字和下划线
如果(fld.value==“”){
fld.style.background='黄色';
error=“您没有输入用户名。\n”;
}否则如果((fld.value.length<5)| |(fld.value.length>15)){
fld.style.background='黄色';
error=“用户名的长度错误。\n”;
}否则如果(非法字符测试(fld值)){
fld.style.background='黄色';
error=“用户名包含非法字符。\n”;
}否则{
fld.style.background='白色';
}
返回误差;
}
功能验证密码(fld){
var误差=”;
var illegalChars=/[\W_]/;//只允许字母和数字
如果(fld.value==“”){
fld.style.background='黄色';
error=“您没有输入密码。\n”;
}否则如果((fld.value.length<7)| |(fld.value.length>15)){
error=“密码长度错误。\n”;
fld.style.background='黄色';
}否则如果(非法字符测试(fld值)){
error=“密码包含非法字符。\n”;
fld.style.background='黄色';
}否则如果(!((fld.value.search(/(a-z)+/)和&(fld.value.search(/(0-9)+/)){
error=“密码必须至少包含一个数字。\n”;
fld.style.background='黄色';
}否则{
fld.style.background='白色';
}
返回误差;
}
功能微调
{
返回s.replace(/^\s+|\s+$/,“”);
}
功能验证邮件(fld){
var误差=”;
var tfld=trim(fld.value);//删除空白字段的值
var emailFilter=/^[^@]+@[^@.]+\.[^@]*\w\w$/;
变量illegalChars=/[\(\)\\,\;\:\\\\“\[\]]/;
如果(fld.value==“”){
fld.style.background='黄色';
error=“您没有输入电子邮件地址。\n”;
}如果(!emailFilter.test(tfld)){//测试电子邮件中的非法字符
fld.style.background='黄色';
error=“请输入有效的电子邮件地址。\n”;
}else if(fld.value.match(非法字符)){
fld.style.background='黄色';
error=“电子邮件地址包含非法字符。\n”;
}否则{
fld.style.background='白色';
}
返回误差;
}
功能验证电话(fld){
var误差=”;
var=fld.value.replace(/[\(\)\.\-\]/g',);
如果(fld.value==“”){
error=“您没有输入电话号码。\n”;
fld.style.background='黄色';
}else if(isNaN(parseInt(stripped))){
error=“电话号码包含非法字符。\n”;
fld.style.background='黄色';
}否则,如果(!(stripped.length==10)){
error=“电话号码长度错误。请确保包含区号。\n”;
fld.style.background='黄色';
}
返回误差;
}
您的用户名:
你的密码
您的电子邮件:
你的电话号码:
你在哪里:
{mxtlang=_JL_FIRSTNAME}
{mxtlang=_JL_LASTNAME}
{mxtlang=_JL_ADDRESS1}
{mxtlang=_JL_ADDRESS2}
{mxtlang=_JL_CITY}
{mxtlang=_JL_ZIPCODE}
{mxtlang=_JL_daytephone}
{mxtlang=\u JL\u EVENINGTELEPHONE}
{mxtlang=\u JL\u applicatementmail}
{mxtlang=\u JL\u applicatementmail}
{mxtlang=\u JL\u封面信}
{mxtlang=_JL_CV_FILE}
{mxtlang=_JL_RESUME}
全部的
早晨
下午
傍晚
周一
星期二
结婚
清华大学
星期五
坐
太阳
从我的第一眼看,原因永远不会是”
,因为无论输入是否为空,您总是在末尾添加
标记。从我的第一眼看,原因永远不会是“
因为无论输入是否为空,您总是在末尾添加
标记。在验证方法中,您的原因变量永远不会为空。
您总是至少为其分配“
”字符串。
因此在最后,它总是返回false,因此表单永远不会提交
您可以通过将validationresults保存到一个数组来避免这种情况
var reasons = [];
reasons.push(validateUsername(theForm.username);
....
var result = reasons.join("<br/>");
var原因=[];
push(validateUsername(form.username);
....
var result=reasons.join(“
”);
然后,结果将是由换行符分隔的原因;或者,如果没有找到原因,结果将是“”。在验证方法中,原因变量永远不会为空。
您总是至少为其分配“
”字符串。
因此在最后,它总是返回false,因此表单永远不会提交
您可以通过保存ValidationResult来规避此问题