1. 程式人生 > >python學習_day61_登錄驗證及表格增刪改作業

python學習_day61_登錄驗證及表格增刪改作業

hide children lag head pla close console turn bsp

一、登錄驗證

  本題利用jQuery插件的方式進行處理,即將jQuery控制代碼單獨作為插件,插件的好處可以方便同結構表單重復使用。插件代碼如下:

/*加自執行函數是為限定變量作用域,避免不同插件間變量重復導致插件汙染問題;將$符號換成jQuery變量傳入是為了解決某些人惡意將$賦為其他值*/
(function (jq) {
    function f2(arg) {
        var $currEle=arg;
        $currEle.find(":submit").on("click",function () {
            jq(".error").text("");
            
var flag=true; $currEle.find("input.require").each(function () { var currVal=jq(this).val(); if(currVal.length===0){ var msgPre=jq(this).prev().text(); jq(this).next().text(msgPre+"不能為空"); flag=false
; return false; } }); return flag; }); } // 給我的jQuery對象添加了一個名叫check的擴展 jq.fn.extend({ check:function () { f2(this) // this表示的是的當前操作的標簽 } }); })(jQuery);

  需控制表單主代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陸校驗作業</title>
    <style>
        .error {
            color: red;
        }
    </style>
</head>
<body>

<form id="f1" action="">
    <p>
        <label for="user">姓名</label>
        <input class="require" id="user" type="text" name="username">
        <span class="error"></span>
    </p>

    <p>
        <label for="pwd">密碼</label>
        <input class="require" id="pwd" type="password" name="passwd">
        <span class="error"></span>
    </p>

    <input type="submit" value="登錄">

</form>


<form id="f2" action="">
    <p>
        <label for="user2">姓名</label>
        <input class="require" id="user2" type="text" name="username">
        <span class="error"></span>
    </p>

    <p>
        <label for="pwd2">密碼</label>
        <input class="require" id="pwd2" type="password" name="passwd">
        <span class="error"></span>
    </p>

    <input type="submit" value="登錄">

</form>


<script src="jquery-3.2.1.min.js"></script>
<script src="extend123.js"></script>//引入插件

<script>
      $(document).ready(function () {                               // 文檔加載完之後執行
        $("#f1").check();                                           //執行插件中的函數
        $("#f2").check();                                           //執行插件中的函數
    });
</script>
</body>
</html>

二、表格增刪改

  答案如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .delete{
            background-color: red;
            color: white;
        }
        .edit{
            background-color: green;
            color: white;
        }
         .hide{
            display: none;
         }
        .shade{
            position: fixed;
            background-color: #cccccc;
            top: 0;
            bottom: 0;
            right: 0;
            left: 0;
            opacity: 0.5;
        }
        .model{
            position: fixed;
            top: 50%;
            right: 50%;
            width: 400px;
            height: 300px;
            margin-right: -150px;
            margin-top: -200px;
            background-color: white;

        }

    </style>
</head>
<body>
<button class="add">添加</button>
<table border="1px" cellpadding="10px" cellspacing="5px">
    <thead>
    <tr>
        <th>序號</th>
        <th>姓名</th>
        <th>愛好</th>
        <th>操作</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>alex</td>
        <td>吹逼</td>
        <td>
            <button class="delete">刪除</button>
            <button class="edit">編輯</button>
        </td>
    </tr>
     <tr>
         <td>2</td>
         <td>egon</td>
         <td>杠娘</td>
         <td>
            <button class="delete">刪除</button>
            <button class="edit">編輯</button>
         </td>
    </tr>
    </tbody>
</table>
<div class="shade hide"></div>
<div class="model hide">
    <p><label for="">姓名<input type="text" class="item name"></label></p>
    <p><label for="">愛好<input type="text" class="item hobby"></label></p>
    <p>
        <input type="button" value="提交" class="submit">
        <input type="button" value="取消" class="cancel">
    </p>
</div>
<script src="jquery-3.2.1.min.js"></script>
<script>
    /*定義一個顯示模態框函數*/
    function show() {
        $(".shade").removeClass("hide");
        $(".model").removeClass("hide")
    }
    /*定義一個關閉模態框函數*/
    function close() {
        $(".shade").addClass("hide");
        $(".model").addClass("hide")
    }
    /*定義一個清除input內容的函數*/
    function clearInput() {
        $(".item").each(function () {
            $(this).val("")
        })
    }
    /*定義了一個獲取添加數據所需順序序號的函數*/
    function getNummber() {
        var $trNummber=$("tbody").children();
//        console.log($trNummber.length)
        var lastNummber=$trNummber.length+1;
//        console.log(lastNummber)
        return lastNummber;
    }
   /*添加按鈕綁定事件*/
    $(".add").on("click",function () {
        show()
    });
    /*input框的取消按鈕綁定事件*/
    $(".cancel").on("click",function () {
        clearInput();
        close()
    });
    /*input框的提交按鈕綁定事件*/
    $(".submit").on("click",function () {
        var arr=[];
        $(".item").each(function () {
            arr.push($(this).val())
        });
        if($(".model").data("tds")){
            var $data=$(".model").data("tds");
            $data.eq(1).text(arr[0]);
            console.log( $data.eq(1));
            $data.eq(2).text(arr[1]);
            $(".model").removeData("tds")                       //將編輯時儲存的信息刪除,避免編輯後添加時無法添加

        }
        else {
            var nummber2=getNummber();
            var s2=" <tr><td>"+nummber2+"</td><td>"+arr[0]+"</td><td>"+arr[1]+"</td><td><button class=\"delete\">刪除</button> <button class=\"edit\">編輯</button></td></tr>";
            $("tbody").append(s2);
        }
        clearInput();
        close()
    });
/*刪除按鈕事件委托*/
    $("tbody").on("click",".delete",function () {
        //更新序號
        $(this).parent().parent().nextAll();                      // 找到它後面所有的tr
        // 每一行的序號都減1
        $(this).parent().parent().nextAll().each(function () {
            var $currTd = $(this).children().first();
            var num = $currTd.text() - 1;                         // 令人窒息的操作
            $currTd.text(num);
        });
       //刪除當前行
        $(this).parent().parent().remove()
    });
/*編輯按鈕事件委托*/
    $("tbody").on("click",".edit",function () {
        show();
        var $td_Object=$(this).parent().siblings();
//        console.log($td_Object);
        var old_text=[];
        $td_Object.each(function () {
            old_text.push($(this).text())
        });
//        console.log(old_text);
        $(".name").val(old_text[1]);
        $(".hobby").val(old_text[2]);
        $(".model").data("tds",$td_Object);                        //將找到的當前行的td保存起來

    })
</script>
</body>
</html>

python學習_day61_登錄驗證及表格增刪改作業