JavaScript对表单元素脚本操作

   创建表单元素是为了满足用户向服务器发送数据的需求。浏览器可以渲染文本框、组合框以及其他输入控件,来实现客户端与服务器商之间的通信。
      Web已经发展得很快了,而Web表彰基本上没有变化。尽管一种新的XForm的标准正在兴起,但没有任何浏览器去进一步支持它,所以现的Web表彰要依赖JavaScript来增加其内置的行为。
      JavaScript使用<form/>元素的方式与使用其他HTML元素的方式有所不同。不仅可用核心的DOM方法来访问表单,还可用其他方法来访问<form/>元素及其中的表单字段。
      1、获取表单的引用
      开始对表单进行操作前,必须先获取<form/>元素的引用,有三种方法可以完成这一操作。
      var oForm=document.getElementById(“form1”);  //用DOM树中的定位元素方法获取
      var oForm=document.forms[0];  //用document的form集合中的位置获取
      var oForm=document.forms[“form1”];  //用表单中的name特性来获取

      2、 访问表单字段
      每个表单字段,不论它是按钮、文本框或其他的内容,均包含在表单的elements集合中,可以用它们的name特性或是它们在集合中的位置来访问不同的字段:
      var oFirstField=oForm.elements[0];
      var oTextBox1=oForm.elements[“textbox1”];
      var oTextBox2=oForm.textbox2; //每个表单字段都是表单的特性,可以直接通过它的name来访问。
      3、 表单字段的共性
      所有的表单字段(除了隐藏字段)都包含同样的特性、方法和事件:
     (1)disabled特性可用来获取或设置表单控件是否被禁用(被禁用的控件不允许用户输入,如果控件被禁用也会在外观上反应出来)。
     (2)form特性用来指向字段所在的表单。
     (3)blur()方法可以使表彰字段失去焦点(将焦点移动到别处)。
     (4)focus()方法会让表单字段获取焦点(控件被选中以便进行键盘交互)。
     (5)当字段失去焦点时,发生blur事件,执行onblur事件处理函数。
     (6)当字段获取焦点时,发生focus事件,执行onfocus事件处理函数。
      隐藏字段只支持form特性,其他没有同样的方法或者事件。
      4、聚焦于第一个字段
      当页面上显示了一个表单后,通常焦点并不在第一个控件上。只需要用一个通常的脚本即可改变这种情况,而且可用在任意表单页面上。如下:
       function focusOnFirst(){
            if(document.forms.length>0){
                  for(var i=0;i<document.form[0].elements.length;i++){
                        var oField=document.forms[0].elements[i];
                        if(oField.type !=”hidden”){
                              oField.focus();
                              return;
                        }
                  }
            }
      }
      5、 提交表单
      在普通的HTML中,必须使用提交按钮或是扮演提交按钮角色的图像来提交表单:
      <input type=”submit” value=”提交”/>
      <input type=”image” src=”submit.gif”/>
      当用户点击其中一个按钮,无需其他编码,就可以提交表单。如果按回车键,并存在这些按钮,浏览器就会认为点击了按钮。
      如果想提交表单,又不想使用前面提到的按钮,可使用submit()方法。Submit()方法是DOM定义的<form/>元素的一部分,可以页面的任意位置使用。
      实际上,也可以通过创建一般按钮,并给它分配onclick事件处理函数来提交表单来模仿提交按钮的行为:
      <input type=”button” value=”提交” οnclick=”document.forms[0].submit()”>
      在表单提交前,按下提交按钮后,会触发submit事件,并执行onsubmit事件处理。使用onsubmit事件处理,可以停止表单提交过程,如果需要在提交表单前进行客户端验证,这将十分有用。
      onsubmit事件处理函数可以用来在提交过程前验证表单,但这仅限于使用提交按钮和图片按钮,如果使用的是submit()方法,不会触发submit事件,所以所有的验证过程应该在调用它之前完成。
      6、仅提交一次
      Web表单的一个很大问题是用户在提交表单的时候会很不耐烦。如果点击提交按钮后,表单没有立即消失,用户则常会点好多次。对于这个问题,解决方法十分简单:在用户点击提交按钮后,将其禁用。这里介绍实现方法:选用一个普通按钮,而不是提交按钮,然后在用户按钮后,将其禁用:
      <input type=”button” value=”提交” οnclick=”this.disabled=true;this.form.submit()” />
      你可能在想为什么不使用提交按钮并用onclick来禁用它,这是因为按钮其实在表单提交前就已被禁用,这将导致表单不被提交。
      7、重置表单
      若要给用户提供将所有表单字段设回默认值的功能,可以使用HTML Reset按钮:
      <input type=”reset” value=”重置”/>
      类似提交按钮,点击重置按钮时,它并不需要编写任何脚本,浏览器自然知道应该做什么。当按钮重置按钮后,同样会触发reset事件,可用onreset事件处理函数来取消表单重置,同时表单也有reset()方法,可以直接从脚本中重置表单而无需要使用重置按钮:
      <input type=”button” value=”重置” οnclick=”document.forms[0].reset()” />
      重置表单在Web开发人员中已不再受欢迎,但对载入时字段中没有任何信息的表单,最好避免使用重置按钮。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值