|
参考主题:实例学习网页制作中常用的网页表单的应用 9 j: _% y/ G) V% G, x! U
表单的提交- H! P6 g) u- \1 ~: _
表单的提交/ n/ Y3 x4 [% u8 Z: j% o) L, W6 O+ M
既然表单是用来采集用户输入的数据,那么,就应该保证用户的数据被准确地提交到预定的地点,也就是说,我们在表单提交的时候,应该对用户的数据进行检验,一来可以避免用户误输数据,二来可以避免用户输入非法的,或者说不合格的数据;检验合格以
( }+ s% k+ |% ?2 o6 v6 M" E% R 既然表单是用来采集用户输入的数据,那么,就应该保证用户的数据被准确地提交到预定的地点,也就是说,我们在表单提交的时候,应该对用户的数据进行检验,一来可以避免用户误输数据,二来可以避免用户输入非法的,或者说不合格的数据;检验合格以后,还要保证用户的数据提交到特定的程序。/ d& y9 N+ N4 d `( \
1.数据的检验+ {: z# X8 t% Y, v# S! o
数据的检验,通常有两种程序:客户端检验和服务器端检验。客户端检验,比较快,服务器端检验,相对来说比较慢,为了确保安全,通常同时采用,这样就可以避免用户刻意破坏。1 B: t; {, }, M! q- a1 n8 _( \
不管采用什么方式,数据检验的原理都是一样的,一旦用户输入的数据不符合规定,就报错,要求用户重新输入,客户端检验常使用Javascrip脚本,服务器端的视系统而定,本文不对数据检验的具体程序设计进行探讨,仅仅列举几个例子来说明。
" g3 q1 p7 I" [/ K+ ~+ p 样例:必填项,以及简单的数据类型检验
+ }; {/ {9 D7 ]* {3 @% h% T 功能实现分析:
E/ y6 @: S, `% j c$ x0 K7 W: H E 本例给表单添加了onSubmit事件,通过onSubmit="return
' g" r9 e1 }" z; g CheckDate()"指定提交前,必须通过函数CheckDate()来检验,如果不合格,返回输入数据; R, }3 t$ C, S2 L% M0 T
数据检验的函数如下: <script> function$ V+ t, ]& b9 m- d- F, c+ _
CheckDate(){ //取得输入的数据 userName = document.RedForm.userName.value;
8 g# q# _ Z# j4 m+ [9 p1 K userEmail = document.RedForm.userEmail.value; //如果没有输入姓名 if- B7 f+ j, I/ H3 i: T/ F/ M1 c
(userName=="") { alert("请输入姓名"); document.RedForm.userName.focus();
7 _$ t+ [5 ]( x+ K return false; }else{ //如果没有输入Email,上海搬场公司或者Email地址错误(不含@) if
% L* c5 ^" O, N0 k. f ((userEmail=="")||(userEmail.indexOf("@")==-1)) {
# F; u3 ]7 c8 {7 b$ U6 `+ v2 f8 t alert("请重新输入Email地址"); document.RedForm.userEmail.focus(); return
- t/ d% e# p5 A4 j, D6 W' X false; }else return true; } }
# T2 N! s/ \. I# c& h# ~6 A4 T </script>
1 h' P/ O! O# b1 ?/ |# ? 以下带*的必须输入:1 ^: U7 s* p, i2 Z+ g' N) s$ ]( z: u
姓名: *. V* V9 P# p; [4 y) j8 p
Email: *
; {3 B) y3 b2 x5 ^1 W3 O1 C 表单的分支提交$ R' t+ b. g4 s) Q/ _1 }
有的时候http://www.zyldjd.com/,大众搬家表单需要根据用户的选择,提交到不同的程序,怎么做呢?通过脚本来检测用户的选择分支,从而向不同的程序提交表单,看看样例:
5 _0 L9 ?. B% Z( g0 l 样例:分支提交
1 \$ f! N& B/ L: O6 q 用户名: 密码:
, M9 o( H1 X. V 公司用户 个人用户
( e4 L0 ~% S/ ?- V c( u% {* a 功能实现分析:* y* V3 v: ^% [$ m% f- \4 q
这里首先用到的是form的onSubmit="TwoSubmit(this)"1 B: ]. k( F2 h* W) G. \
然后根据选择的分支http://www.sh6997.comhttp://www.xiangpaiming.com,上海搬家公司来分别递交到不同的程序,大众搬场TwoSubmit()函数如下:5 Y1 c' w6 v, v9 G- P0 j. ~0 U# {3 H
<script> function TwoSubmit(form){ if7 m: X, O& Y% W0 D) n" c
(form.Ref[0].checked){ form.action = "cop.asp";//这里是分之一 }else{; K2 }/ r: X, k2 E% w
form.action = "ind.asp";//这里是分之二 } form.submit(); }
$ l' [$ J$ j1 o2 U$ Z b3 h0 w </script>/ `# N0 H5 x7 }8 t, n5 j
用任何元素提交表单
. \# f6 m- v( r( Y4 i 是不是只有按钮或者图片按钮才能提交表单呢?当然不是,实际上,任何页面元素都可以提交表单,不过嘛,都是通过脚本来完成的,下面我们就使用链接来代替Submit按钮:
7 E' C' J+ c2 M7 g* Q5 ^0 ? [恶搞]表格中单元格之间分隔线的隐藏方法_ |
|