HTML 学习笔记 JQuery(表单,表格 操作)

HTML 学习笔记 JQuery(表单,表格 操作)

表单应用

一个表单有3个基本组成部分

(1)表单标签:包含处理表单数据所用的服务器端程序URL 以及数据提交到服务器的方法

(2)表单域:包含文本框 密码框 隐藏框 多行文本框 复选框 单选框 下拉选择框和文件上传框。

(3)表单按钮:包括提交按钮 复位按钮和一般按钮 用于将数据传送到服务器上或者取消传送,还可以用来控制其他定义了脚本的处理器处理工作。

为不支持伪类的浏览器上的文本框添加获取焦点 失去焦点的样式变化

代码如下:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            /*input:focus,textarea:focus {
                border: 1px solid #FF0000;
                background: #ffcccc;
            }*/
            .focus {
                border: 1px solid#FF0000;
                background: #FFCCCC;
            }
        </style>
        <script src="../js/jquery-2.1.1.min.js"></script>
    </head>
    <body>
        <form action="#" method="post" id="regForm">
            <fieldset>
                <legend>个人基本信息</legend>
                <div>
                    <label for="username">名称:</label>
                    <input id="username" type="text" />
                </div>
                <div>
                    <label for="pass">密码:</label>
                    <input id="pass" type="password" />
                </div>
                <div>
                    <label for="msg">详细信息</label>
                    <textarea id="msg"></textarea>
                </div>
            </fieldset>
        </form>
        <script>
            $(function() {
                $(":input").focus(function() {
                    $(this).addClass("focus");
                }).blur(function() {
                    $(this).removeClass("focus");
                });
            });
        </script>
    </body>
</html>

多行文本框应用

(1)高度变化

代码如下:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="../js/jquery-2.1.1.min.js"></script>
    </head>
    <body>
        <form>
            <div class="msg">
                <div class="msg_caption">
                    <span class="bigger">放大</span>
                    <span class="smaller">缩小</span>
                </div>
                <div>
                    <textarea id="comment" rows="8" cols="20">
                        多行文本框高度变化 多行文本框高度变化
                        多行文本框高度变化 多行文本框高度变化
                        多行文本框高度变化 多行文本框高度变化
                        多行文本框高度变化 多行文本框高度变化
                    </textarea>
                </div>
            </div>
        </form>
        <script>
            $(function() {
                var $comment = $("#comment");
                $(".bigger").click(function() {
                    if ($comment.height() < 500) {
                        $comment.animate({"height":"+=50"},400);
                    }
                });
                $(".smaller").click(function() {
                    if (!$comment.is(":animated")) {
                        if ($comment.height() > 50) {
                        $comment.animate({"height":"-=50"},400);
                    }
                }
                });
            });
        </script>
    </body>
</html>

(2)滚动条高度变化

在多行文本框中,还有另外一个应用,就是通过控制多行文本框的滚动条的变化,使文本框里面的内容滚动。

与控制高度的方法相同,只不过此处需要控制的是另外一个属性,即scrollTop。将以上代码修改如下

        $(function() {
                var $comment = $("#comment");
                $(".bigger").click(function() {
                    $comment.animate({"scrollTop":"+=50"},400);        
                });
                $(".smaller").click(function() {
                    if (!$comment.is(":animated")) {
                        $comment.animate({"scrollTop":"-=50"},400);
                    }
                });
            });

复选框应用

对复选框的最基本的应用就是对复选框进行全选 反选 和全不选等操作。复杂的操作需要与选项挂钩,来达到各种级联的反应效果。

首先在空白网页中创建一个表单 其中放入一组复选框 HTML代码如下

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="../js/jquery-2.1.1.min.js"></script>
    </head>
    <body>
        <form action="#" method="post">
            你最喜欢的运动是?
            <br />
            <input type="checkbox" name="items" value="足球" />足球
            <input type="checkbox" name="items" value="篮球" />篮球
            <input type="checkbox" name="items" value="羽毛球" />羽毛球
            <input type="checkbox" name="items" value="乒乓球" />乒乓球
            <input type="button" id="checkeAll" value="全选" />
            <input type="button" id="checkeNo" value="全bu选" />
            <input type="button" id="checkerev" value="反选" />
            <input type="button" id="send" value="提交" />
            
        </form>
    </body>
</html>

如果需要复选框处于选中状态或者不选状态,必须通过控制元素的checked属性来达到目的,如果属性为true,说明被选中,如果值为false则说明没被选中。

全选操作就是当用户点击全选按钮的时候,需要讲复选框全部选中,此时需要为全选按钮绑定单击事件,然后使用选择器寻找符合要求的复选框。通过attr()方法来设置属性checked的值,使之选中。代码如下

$("#checkeAll").click(function() {
    $("[name = items]:checkbox").attr("checked",true);
});

全不选操作

$("#checkeNo").click(function() {
    $("[name = items]:checkbox").attr("checked",false);
});

反选操作

$("#checkerev").click(function(){
                $("[name = items]:checkbox").each(function() {
                    this.checked = !this.checked;
                });
            });

提交按钮

$("#send").click(function() {
                var str = "您选中的是:
";
                $("[name = items]:checkbox:checked").each(function() {
                    str += $(this).val() + "
";
                });
                alert(str);
            });

表格应用

HTML代码

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            table thead th{
                width: 80px;
                text-align: left;
                margin: 0px;
                border-style: none;
                border-bottom: 1px solid darkgray;
            }
            table {
                border-collapse:collapse;
            }
            table tbody td {
                border-style: none;
            }
            .even{
                background: #fff38f;
            }
            .odd {
                background: #ffffee;
            }
        </style>
        <script src="../js/jquery-2.1.1.min.js"></script>
    </head>
    <body>
        <table border="1px solid blue">
            <thead>
                <tr><th>姓名</th><th>性别</th><th>曾驻地</th></tr>
            </thead>
            <tbody>
                <tr><td>张山</td><td></td><td>浙江宁波</td></tr>
                <tr><td>张山</td><td></td><td>浙江宁波</td></tr>
                <tr><td>张山</td><td></td><td>浙江宁波</td></tr>
                <tr><td>张山</td><td></td><td>浙江宁波</td></tr>
                <tr><td>张山</td><td></td><td>浙江宁波</td></tr>
                <tr><td>张山</td><td></td><td>浙江宁波</td></tr>
            </tbody>
        </table>
        <script>
            //隔行变色
            $(function() {
                //偶数行
                $("tr:odd").addClass("odd");
                //奇数行
                $("tr:even").addClass("even");
            });
        </script>
    </body>
</html>

上面的变色 表头也会算进去 现在去除标头

//                选择器"tbody>tr"选取tbody中的tr
                $("tbody>tr:odd").addClass("odd");
                $("tbody>tr:even").addClass("even");

如果需要选中某一行进行高亮显示

//选中某一行进行高亮显示
//                $("tbody>tr:contains('张三')").addClass("selected");
                //点击某一行显示高亮
                $("tbody>tr").click(function() {
                    $(this).addClass("selected");
                    //周边的变成普通颜色
                    $(this).siblings().removeClass("selected");
                })

可以展开隐藏的表格

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="../js/jquery-2.1.1.min.js" ></script>
        <style type="text/css">
             .selected {
                 background: aqua;
             }
        </style>
    </head>
    <body>
        <table>
            <thead>
                <tr><td>姓名</td><td>性别</td><td>暂住地</td></tr>
            </thead>
            <tbody>
                <tr class="parent" id="row_01"><td colspan="3">前台组合设计</td></tr>
                <tr class="child_row_01"><td>张山</td><td></td><td>浙江宁波</td></tr>
                <tr class="child_row_01"><td>张山</td><td></td><td>浙江宁波</td></tr>
                
                <tr class="parent" id="row_02"><td colspan="3">前台开发组</td></tr>
                <tr class="child_row_02"><td>王五</td><td></td><td>浙江宁波</td></tr>
                <tr class="child_row_02"><td>王五</td><td></td><td>浙江宁波</td></tr>
                
                <tr class="parent" id="row_03"><td colspan="3">后台开发组</td></tr>
                <tr class="child_row_03"><td>赵六</td><td></td><td>浙江宁波</td></tr>
                <tr class="child_row_03"><td>赵六</td><td></td><td>浙江宁波</td></tr>
            </tbody>
            <script>
                $(function() {
                    $("tr.parent").click(function() {
                        $(this).toggleClass("selected");
                        $(this).siblings(".child_"+this.id).toggle();//控制显示隐藏
                    });
                });
            </script>
        </table>
    </body>
</html>

制作选项卡

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
        *{
            margin: 0px;
            padding: 0px;
        }
            .table {
                width: 250px;
                height: 180px;
                border: 1px solid brown;
                padding: 0px;
                
            }
            div.tab_menu {
                width: 200px;
                height: 30px;
                margin:10px 25px 0px 25px;
            }
            ul li {
                display: inline-block;
                background: darkcyan;
                width: 50px;
                height: 30px;
                margin: 0px 5px;
                text-align: center;
                line-height: 30px;
            }
            div.tab_box {
                width: 200px;
                height: 120px;
                border: 1px solid darkgray;
                margin: 5px 25px 10px 25px;
            }
            .hide {
                display: none;
            }
            .selected {
                background: aqua;
            }
        </style>
        <script type="text/javascript" src="../js/jquery-2.1.1.min.js" ></script>
    </head>
    <body>
        <div class="table">
            <div class="tab_menu">
                <ul>
                    <li class="selected">时事</li>
                    <li>体育</li>
                    <li>娱乐</li>
                </ul>
            </div>
            <div class="tab_box">
                <div>时事</div>
                <div class="hide">体育</div>
                <div class="hide">娱乐</div>
            </div>
        </div>
        <script>
            $(function() {
                var $div_li = $("div.tab_menu ul li");
                $div_li.click(function() {
                    $(this).addClass("selected").siblings().removeClass("selected");
                    var index = $div_li.index(this);
                    $("div.tab_box > div").eq(index).show().siblings().hide();
                });
            })
        </script>
    </body>
</html>