2.表单的分支提交
有的时候,表单需要根据用户的选择,提交到不同的程序,怎么做呢?
通过脚本来检测用户的选择分支,从而向不同的程序提交表单,看看样例:
分支提交
(观看效果页样例21)
分析:这里首先用到的是form的onSubmit="TwoSubmit(this)",然后根据选择的分支,来分别递交到不同的程序,TwoSubmit()函数如下:
<script>
function TwoSubmit(form){
if (form.Ref[0].checked){
form.action = "cop.ASP";//这里是分支一
}else{
form.action = "ind.ASP";//这里是分支二
}
form.submit();
}
</script>
3.用任何元素提交表单
是不是只有按钮或者图片按钮才能提交表单呢?当然不是,实际上,任何页面元素都可以提交表单,不过嘛,都是通过脚本来完成的,下面我们就使用链接来代替Submit按钮:
用链接来提交表单
(观看效果页样例22)
分析:
通过onClick="document.form.submit()"来提交表单;用onClick="document.form.reset()"来复位表单,这样一来,任何一个元素都可以实现提交表单了。
四、表单的常用技巧
这些常用技巧,往往是和事件以及脚本联系在一起,本文注重功能,至于脚本,就不一一详细分析。常见的技巧有:下拉跳转菜单,表单内容的聚焦。
1.下拉跳转菜单
在Dreamweaver中,可以很方便地建立基于表单的下拉菜单,为了兼顾非Dreamweaver用户,这里讲述一下这种技巧。
基于表单的下拉跳转菜单
(观看效果页样例23)
分析:实际上,这里用到了一个函数,用于向选择的地址跳转,
<script language="JavaScript">
function FormMenu(targ,selObj,restore){
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>
然后,给下拉选择框赋予一个事件onChange="FormMenu('parent',this,0)",就可以了。
2.表单内容的聚焦
内容聚焦,常用在Copy&Paste类网站上,用的好的话,可以方便用户。
内容自动聚焦
(观看效果页样例24)
分析:上面分别使用了两个事件,Email的是onFocus="this.value=''",自动选择的是onMouseOver="this.select()"
3.去掉表格和表单间的空隙
表格和表单的空隙处理
(观看效果页样例25)
表格,我们常用来构架页面,可是,表格里的表单总是和表格的内容有一个空隙。
分析:为什么没有空隙呢,看看右边的代码就知道了。
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<form name="form3" method="post" action="">
<td> <input type="text" name="textfield2">
<input type="submit" name="Submit22" value="Submit">
这里没有空隙 </td>
</form>
</tr>
</table>
也就是说,把<form>标签放到<tr>和<td>中间,对应的</form>放在</td>和</tr>中间!
4.用Email提交表单(只适合Outlook用户,不适合Foxmail用户)
Email提交表单
(观看效果页样例26)
分析:看看我们的表单<form>标签就知道了,格式如下:
<form name="..." action="mailto:xxxxx@xxx.xxx?Subject=表单反馈" enctype="text/plain" method="post">...</form>
这里的mailto:后面加上要接受信息的地址,?Subject是设置默认的Email标题,enctype="text/plain"是必要的,表示信息以文本方式提交,没有任何加密,所以这种方法常用于没有ASP/PHP/CGI支持的空间,也只是一个代用的方法,用户必须安装Outlook,并且是默认的邮件程序,才能顺利执行提交,据说TheBat!也可以,大家可以试验一下