一般表单只有一个后台处理程序(如,CGI程序;ASP程序等等)与之对应,用来处理表单提交的数据。
但是,在某些情况下,我们希望同一个表单可以根据用户的选择,提交给不同的后台处理程序。
即,表单的分向提交。如,我们希望实现用户在发送贴子的时候,既发送提交功能又有预览功能时,就会遇到上述问题。即,当用户点击提交按钮时,我们希望表单提交给"提交"处理程序;而当用户点击预览按钮时,我们希望表单提交给"预览"处理程序。那么,如何实现上述功能呢?下面代码可以很好的解决这个问题。
<form name="form" method="post">
测试表单:<input name="test"><br>
<input type="button" value="提交" onClick=send()>
<input type="button" value="预览" onClick=preview()>
</form>
<script language=javascript>
function send()
{
document.form.action="send.asp"
document.form.submit()
}
function preview()
{
document.form.action="preview.asp"
document.form.submit()
}
</script>
function send() { document.form.action="send.asp" document.form.submit() }function preview() { document.form.action="preview.asp" document.form.submit() }关于上面实例的两点说明:
1、在整个表单中,不应有名字为action或submit的标签,否则将会产生"对象不支持此属性和方法"的错误(但是在firefox中这个没有报错)。如代码 "<input type=''xxxx'' name=''action'' >"在表单中是不允许出现的;
2、在form标签中应该存在name属性。即,应该给表单取一个名字。语句document.form.action和document.form.submit中的"form"也就是表单的名字。
表单的分向提交不仅仅使用在论坛的程序中,它还可以运用在许多场合下。恰当的运用表单的分向提交功能可以大大的增强网站的人性化程度。
有时调试程序就出现了这样的问题,就是出现了"对象不支持此属性和方法"的错误,一直无法定位出来,都快疯掉了,原来就是因为一个button命名为submit了。