zoukankan      html  css  js  c++  java
  • 读书时间《JavaScript高级程序设计》七:表单

        在HTML中表单是有<form>元素表示,在JS中表单对应的是HTMLFormElement类型。

       表单自有的属性和方法:

       获取表单

       1. 通过ID  document.getElementById

       2. 通过 document.forms 获取表单集合 在通过索引值或者name值获取具体表单元素

       提交表单

         使用input 或者 button 可以定义提交按钮,将其type设置为 submit。

    <input type="submit"  value="提交" />
    <button type="button">提交</button>
    <input type="image" src="button.png" />

       当表单中有提交按钮,在表单控件拥有焦点时,按下Enter键就可以提交表单(textarea例外)。并且在提交表单时会触发submit事件。 

    var form = document.getElementById('myForm');
    
    form.addEventListener('submit', function(e){
        // 阻止提交
        e.preventDefault();
    });
    
    // 提交表示
    form.submit();

       重置表单

       点击表单重置按钮时,表单会重置。设置input或者button的type为reset。

    <input type="reset" value="重置" />
    <button type="reset">重置</button>

       重置表单会触发reset事件。

    var form = document.getElementById('myForm');
    
    form.addEventListener('reset', function(e){
        // 取消重置
        e.preventDefault();
    });
    
    // 重置表单
    form.reset();

         表单字段

        每个表单都有elements属性,这个属性是表单中所有元素的集合。这个集合是个有序的列表,其中包含表单中所有的字段。可以通过每个字段在集合中的位置和name访问。  

    // 获取表单
    var form = document.getElementById('myForm');
    
    // 获取表单的第一个字段
    var frist = form.elements[0];
    
    // 获取名为username的字段
    var username = form.elements['username'];

       表单元素拥有一些共有的属性:

        表单元素共有的方法: 

    window.onload = function(){
        // 第一个表单中的第一个元素获取焦点
        document.forms[0].elements[0].focus();
    };

        注:如果第一个表单元素是一个input元素并且type值为hidden, 或使用css的display和visibility隐藏了改元素,focus会导致错误。 

        文本框  

        单行文本框:input元素

        多行文本框: textarea元素

    <!-- 文本框能够显示25个字符 输入不超过50个字符 -->
    <input type="text" size="25" maxlength="50" value="" />
    <!-- 文本框显示 10行 30列(字符数列) -->
    <textarea rows="10" cols="30"></textarea>

        选择文本 

    <input type="text" value="呵呵,这是一个表情。">
    window.onload = function() {
        var input = document.forms[0].elements[0];
        input.select();
        input.addEventListener('select', function() {
            // 选择了什么文本 - HTML5 API
            console.log( input.value.substring(input.selectionStart, input.selectionEnd) )
    
        });
    };
    function selectText(textbox, startIndex, stopIndex){
        if (textbox.setSelectionRange){
            textbox.setSelectionRange(startIndex, stopIndex);
        } else if (textbox.createTextRange){
            var range = textbox.createTextRange();
            range.collapse(true);
            range.moveStart("character", startIndex);
            range.moveEnd("character", stopIndex - startIndex);
            range.select();                    
        }
        textbox.focus();
    }

     。。。

     

       

  • 相关阅读:
    MVC动态添加文本框,后台使用FormCollection接收
    使用结构struct作为Dictionary<TKey,TValue>的键
    扩展方法的几个实例,扩展基本类型、接口、通过反射让扩展方法使用私有成员等
    使用Enum.TryParse()实现枚举的安全转换
    .NET泛型04,使用Lazy<T>实现延迟加载
    .NET泛型03,泛型类型的转换,协变和逆变
    .NET泛型02,泛型的使用
    dd、split、csplit命令
    seq命令
    uniq命令
  • 原文地址:https://www.cnblogs.com/eyeear/p/5613061.html
Copyright © 2011-2022 走看看