• 表单


    表单本身也是DOM树

    表单的输入框、下拉框等可以接收用户输入,所以用JavaScript来操作表单,可以获得用户输入的内容,或者对一个输入框设置新的内容。

    HTML表单的输入控件主要有以下几种:

    • 文本框,对应的<input type="text">,用于输入文本;

    • 口令框,对应的<input type="password">,用于输入口令;

    • 单选框,对应的<input type="radio">,用于选择一项;

    • 复选框,对应的<input type="checkbox">,用于选择多项;

    • 下拉框,对应的<select>,用于选择一项;

    • 隐藏文本,对应的<input type="hidden">,,hidden只是将输入框隐藏了,但表单提交时会把隐藏文本发送到服务器,里面的值可以默认赋值或通过js赋值。

    获取值

    如果我们获得了一个<input>节点的引用,就可以直接调用value获得对应的用户输入值

    // <input type="text" id="email">
    var input = document.getElementById('email');
    input.value; // '用户输入的值'

    这种方式可以应用于textpasswordhidden以及select。但是,对于单选框和复选框value属性返回的永远是HTML预设的值,而我们需要获得的实际是用户是否“勾上了”选项,所以应该用checked判断

    // <label><input type="radio" name="weekday" id="monday" value="1"> Monday</label>
    // <label><input type="radio" name="weekday" id="tuesday" value="2"> Tuesday</label>
    var mon = document.getElementById('monday');
    var tue = document.getElementById('tuesday');
    mon.value; // '1'
    tue.value; // '2'
    mon.checked; // true或者false
    tue.checked; // true或者false

    设置值

    设置值和获取值类似,对于textpasswordhidden以及select直接设置value就可以

    // <input type="text" id="email">
    var input = document.getElementById('email');
    input.value = 'test@example.com'; // 文本框的内容已更新
    

    对于单选框和复选框,设置checkedtruefalse即可。

    HTML5控件

    HTML5新增了大量标准控件,常用的包括datedatetimedatetime-localcolor等,它们都使用<input>标签:

    <input type="date" value="2015-07-01">

    提交表单

    最后,JavaScript可以以两种方式来处理表单的提交(AJAX方式在后面章节介绍)。

    方式一是通过<form>元素的submit()方法提交一个表单,例如,响应一个<button>click事件,在JavaScript代码中提交表单:

    <!-- HTML -->
    <form id="test-form">
        <input type="text" name="test">
        <button type="button" onclick="doSubmitForm()">Submit</button>
    </form>
    
    <script>
    function doSubmitForm() {
        var form = document.getElementById('test-form');
        // 可以在此修改form的input...
        // 提交form:
        form.submit();
    }
    </script>

    这种方式的缺点是扰乱了浏览器对form的正常提交。
    浏览器默认点击<button type="submit">时提交表单,或者用户在最后一个输入框按回车键。
    因此,第二种方式是响应<form>本身的onsubmit事件,在提交form时作修改:
    <!-- HTML -->
    <form id="test-form" onsubmit="return checkForm()">
        <input type="text" name="test">
        <button type="submit">Submit</button>
    </form>
    
    <script>
    function checkForm() {
        var form = document.getElementById('test-form');
        // 可以在此修改form的input...
        // 继续下一步:
        return true;
    }
    </script>
    注意要return true来告诉浏览器继续提交,如果return false,浏览器将不会继续提交form,
    这种情况通常对应用户输入有误,提示用户错误信息后终止提交form。
     
     
  • 相关阅读:
    参与 Microsoft 开发者社区,发挥自己的技术价值。
    Silverlight 与HTML元素交互操作
    冯瑞涛的新浪技术微博正式上线!欢迎您的关注。
    Silverlight Object 标签属性介绍、初始化参数的设置和获取、客户端系统信息获取
    Visual Studio 2010 RC 公共下载开放,开发者可以通过下面的地址下载
    C# Socket 同步通信与异步通信 示例
    解决 Visual Studio 打开项目 “Project could not be opened because Microsoft Visual C# 2008 compiler could not be created” 报错
    Silverlight 与javaScript互操作
    Windows Mobile 6.5 设置 QQ 通过 WiFi 连接登录
    黑龙江.Net俱乐部在博客园安家了,欢迎您的加入、关注和参与我们的线下活动。
  • 原文地址:https://www.cnblogs.com/EganZhang/p/6544127.html
Copyright © 2020-2023  润新知