zoukankan      html  css  js  c++  java
  • 14.1 表单元素

     HTMLFormElement  extends HTMLElement

      表单类型,从上面可以看出与其他HTML元素具有相同的默认属性。不过HTMLFormElement也有它自己独有的属性和方法。

    acceptCharset 服务器处理的字符集
    action    接受请求的url   
    elements 表单所有控件的集合(HTMLCollection)
    enctype 请求编码类型; 等价HTML中的enctype
    length 表单中控件的数量
    method 要发送的HTTP请求类型,通常是 get 或 method
    name 表单的名称
       
    Function  
    reset() 将所有表单重置为默认值
    submit() 提交表单
    target

    用于发送请求和接收响应的窗口名称

    • 获取表单

    方式一:

    getElementById()

    方式二:forms

    document.forms

      

    • 提交表单 

      第一类方式:用户单击表单按钮或图片按钮,就会提交表单。 使用input 、button 都可以定义提交按钮

      

    <!--通用-->
    <input type="submit" value="Submit Form">
    <!--自定义-->
    <button type="submit">Submit Form</button>
    <!--图像按钮-->
    <input type="image" value="**.gif">

    已这种方式提交的表单时,浏览器会在将请求发送服务器之前触发submit事件。这样我们就有验证表单数据,并据以决定是否允许提交表单。 阻止事件的默认行为就可以取消表单提交。

      

    1     var form = document.getElementById("form");
    2     form.addHandler(form,"submit",function(evennt){
    3         //取得事件对象
    4         event = EventUtil.getEvent(event);
    5         //阻止more事件
    6     event.preventDefault();
    7     });



      第二类:在JavaScript中,以编程方式调用 submit()方法也可以提交

        注意:通过这种方式提交的表单,并不会触发submit事件。所以在调用该方法之前应该先对表单进行处理。

     1     var form = document.getElementById("form");
     2     var btn = document.getElementById("btn");
     3     EventUtil.addHandler(form,"submit",function(evennt){
     4         //取得事件对象
     5         event = EventUtil.getEvent(event);
     6         //阻止more事件
     7         event.preventDefault();
     8         alert("进入submit事件中");
     9     });
    10     EventUtil.addHandler(btn,"click",function(evennt){
    11         alert("进入执行点击");  //进入执行点击
    12         form.submit();
    13     });

        给表单中一个元素添加点击事件,用调用方法的形式提交表单,只执行了click处理函数, submit处理函数并未执行。

      ★★★★★★

      提交表单时可能出现的最大问题,就是重复提交表单。在第一个提交表单后,如果长时间没有反应,用户可能会变得不耐烦。这时可能会返回点击提交按钮。

      解决这问题最好常用的方式:

        ★★★:在第一次提交表单后就禁用提交按钮。

         ★★★:利用onsubmit 事件处理程序取消后续的表单提交操作。

    • 重置表单 

        重置表单就是恢复表单元素到页面刚刚加载完毕时的初始值。如果某个字段的初始值为空,就会恢复为空;默认值则恢复默认值

        与重置相关的一个事件: reset 事件,该事件与submit有点区别,不管用那种方式提交都会触发 reset事件。

    1     var form = document.getElementById("form");
    2     EventUtil.addHandler(form,"reset",function(evennt){
    3         //取得事件对象
    4         event = EventUtil.getEvent(event);
    5         //阻止more事件
    6         event.preventDefault();
    7         alert("进入reset事件中");
    8     });

    当出现这样情况时会出现错误:不能使用关键之作为其 id  或 name 的名称

    1 <form  id="form">
    2     <input value="" type="text">
    3     <input type="reset" id="reset" value="重置">
    4     <input type="submit" value="submit">
    5     <button type="button" id="btn">重置</button>
    6 </form >
     1     var form = document.getElementById("form");
     2     var btn = document.getElementById("btn");
     3     EventUtil.addHandler(form,"reset",function(event){
     4         //取得事件对象
     5         event = EventUtil.getEvent(event);
     6         //阻止more事件
     7         event.preventDefault();
     8         alert("进入reset事件中");
     9     });
    10     EventUtil.addHandler(btn,"click",function(event){
    11         //alert("进入执行点击");  //进入执行点击
    12         form.reset()
    13     });

      

    • 表单字段

        可以像访问页面中的元素一样,使用原生DOM方法访问表单元素。每个表单都有elements属性,该属性是表单中所有元素的集合。

      elements集合 

          是一个有序列表,其中包含着表单中的所有字段,例如 input textarea button fieldset 。 每个表单字段在elements集合中顺序, 与它们出现在标记中顺序相同,可以按照位置或name特性来访问。

       

      

      

      

  • 相关阅读:
    VIM中保存编辑的只读文件
    ElasticSearch 入门
    NET Core实现OAuth2.0的ResourceOwnerPassword和ClientCredentials模式
    visual studio for mac的安装初体验
    分库分表
    Oracle执行计划
    mybatis批量update(mysql)
    查看mysql字符集及修改表结构--表字符集,字段字符集
    13.1.17 CREATE TABLE Syntax
    10.1.5 Connection Character Sets and Collations
  • 原文地址:https://www.cnblogs.com/czhyuwj/p/5716537.html
Copyright © 2011-2022 走看看