有时我们需把一个页面的表单提交到不同的页面,处理方法一般采用在onClick事件中动态给出action的值,如下例:
<FORM ACTION="" METHOD="post" NAME="PostTopic">
<INPUT TYPE="submit" NAME=Submit VALUE="新增" class=buttonface onclick="document.PostTopic.action='addone.php';">
<INPUT TYPE="RESET" NAME=Reset VALUE="重置" class=buttonface >
<INPUT TYPE="submit" NAME="Submit" VALUE="修改" class=buttonface onclick="document.PostTopic.action='modify.php';">
</FORM>
此时针对不同提交目标对表单作的校验,只能放在onClick事件中,但这样造成无论是否通过验证都会提交表单的问题。因为这个按钮是submit类型。
对此问题,我的解决方法是这样的:
<script language="JavaScript">
<!--
document.returnValue=true; //一个全局变量,给初值。
function validateForm() {
var errors;
errors='';
if (document.PostTopic.title.value=="")
errors="标题不能为空";
if( document.PostTopic.intro.value.length>10)
errors+="\n简介不能多于10个字";
if (errors!='') alert(errors);
document.returnValue = (errors == '');
}
</script>
<FORM ACTION="" METHOD="post" NAME="PostTopic" onSubmit="return document.returnValue;">
<input type=text name=title value="">
<input type=text name=intro value="">
<INPUT TYPE="submit" NAME=Submit VALUE="新增" class=buttonface onclick="document.PostTopic.action='addone.php';validateForm(); return document.returnValue;">
<INPUT TYPE="RESET" NAME=Reset VALUE="重置" class=buttonface >
<INPUT TYPE="submit" NAME="Submit" VALUE="修改" class=buttonface onclick="document.PostTopic.action='modify.php';validateForm(); return document.returnValue;">
</FORM>