06.jQuery网页示例

  • HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript" src="js/jquery-3.2.1.js" ></script>
        <script type="text/javascript" src="js/new_file.js" ></script>
        <link rel="stylesheet" href="css/new_file.css" />
        <style type="text/css">
            .buttonType{
                background-color: gray;
                border: 1px solid gainsboro;
                padding: 0.6em;
                border-radius: 1em;
                color: white;
                outline: none;
            }
        </style>
        <script type="text/javascript">
            $(document).ready(function(){
                $(".buttonType").mousedown(function(){
                    $(this).css("color","black");
                }).mouseup(function(){
                    $(this).css("color","white");
                });
            });
        </script>
    </head>
    <body>
        <div class="topDisplay">
            <b>
                <pre>Please    Input    The    Information</pre>
            </b>
        </div>
        <div class="mainDisplay">
            <ul class="mainUl"></ul>
        </div>
        <div class="bottomDisplay">
            <input type="submit" class="buttonType" value="Submit"/>
        </div>
    </body>
</html>

  • CSS

/*通用样式设置*/
ul{
    list-style: none;
}
/*设置topDisplay样式*/
.topDisplay{
    background-color: gainsboro;
    border-radius: 0.5em;
    padding: 2px;
    color: darkslategray;
}
.topDisplay pre{
    text-align: center;
    font-size: 18px;
}

/*设置mainDisplay及其子元素的样式*/
.mainUl li{
    width: 50%;
    float: left;
    margin: 0.5em 0;
}

.mainUl li span{
    margin: 0 0.5em;
}

.mainUl li div{
    display: inline-block;
    color: gray;
}

/*设置bottomDisplay展示样式*/
.bottomDisplay{
    background-color: gainsboro;
    border-radius: 1em;
}
.bottomDisplay .buttonType{
    margin-top: 2em;
    margin-bottom: 2em;
    margin-left: 90%;
}

  • JS

$(document).ready(function() {
    //对象定义
    function ElementObject() {
        this.Name = "name";
        this.Telphone = "13012345678";
        this.Sex = "male";
        this.Gender = "Mr.";
        this.Birthday = new Date();
        this.Age = 0;
        this.Email = "xx@163.com";
        this.HomeNumber = "8601234";
        this.Town = "town";
    }
    //显示元素创建
    ElementObject.prototype.ElementsDisplay = function() {
        //遍历对象属性
        for(name in this) {
            //判断是属性还是方法
            if(this[name] instanceof Function) {
                continue;
            } else {//是属性即显示
                //创建显示节点
                var $newLi = $("<li></li>");
                var $newDiv = $("<div></div>");
                var $separationSpan = $("<span>:</span>");
                var $newInput = $("<input />");
                //显示节点设置
                $($newLi).attr("name", String(name));
                $($newDiv).text(name);
                //显示节点加入父元素
                $($newLi).append($newDiv, $separationSpan, $newInput);
                $(".mainUl").append($newLi);
            }
        }
    }
    //设置div格式,根据所有div长度,找到最长的,并设置为所有的div长度
    ElementObject.prototype.ElementsDisplayDiv = function(findEleCls,eleTag){
        //遍历查询出div的最大长度
        var elementWidth = 0;
        var eleArr = $(String(findEleCls)).find(String(eleTag)).get();
        for(ele in eleArr) {
            var eleWidth = $(eleArr[ele]).width();
            if(eleWidth > elementWidth) {
                elementWidth = eleWidth;
            }
        }
        //设置所有的div长度为最大值
        $(String(findEleCls)).find(String(eleTag)).width(elementWidth);
    }
    
    //设置不同的输入类型
    ElementObject.prototype.ElementDisplayInput = function(findEleCls,eleTag){
        var eleArr = $(String(findEleCls)).find(String(eleTag)).get();
        for(ele in eleArr) {
            switch ($(eleArr[ele]).parent().attr("name")){
                case "Telphone":
                case "HomeNumver":
                    $(eleArr[ele]).attr("type","number");
                    break; 
                case "Sex":
                    var SexList = {
                        "男":"Male",
                        "女":"Female"
                    }
                    $(eleArr[ele]).replaceWith(setOption(SexList));
                    break;
                case "Gender":
                    var GenderList =  {
                        "先生":"Mr.",
                        "女士":"Mrs.",
                        "小姐":"Miss"
                    }
                    $(eleArr[ele]).replaceWith(setOption(GenderList));
                    break;
                case "Birthday":
                    $(eleArr[ele]).attr("type","date").val("2000-01-01");
                    break;
                case "Age":
                    $(eleArr[ele]).attr({
                        "type":"number",
                        "min":"0",
                        "disabled":"disabled"
                    }).val(18);
                    break;
                default:
                    $(eleArr[ele]).attr("type","text");
                    break;
            }
        }
    }
    //设置下拉框的方法
    function setOption(dict){
        var ele = $("<select></select>");
        for(name in dict){
            $option = $("<option></option>").attr("value",String(dict[name])).html(String(dict[name]));
            $(ele).append($option);
        }
        return ele;
    }
    //对象定义
    var newObj = new ElementObject();
    newObj.ElementsDisplay();
    newObj.ElementsDisplayDiv(".mainUl","div");
    newObj.ElementDisplayInput(".mainUl","input");
    
    //年龄跟随生日变化
    $("[name='Birthday'] > input").change(function(){
        var birth = new Date($(this).val()).getFullYear();
        var now = new Date().getFullYear();
        $("[name='Age'] > input").val(now-birth);
    });
    //校验Email
    $("[name='Email'] > input").blur(function(){
        var reg = /\w+[@]{1}\w+[.]\w+/;
        if(!reg.test($(this).val())){
            alert("Please input the correct email format !");
        }
    });

});
  • 示例图片

test33.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容