ホームページ  >  記事  >  ウェブフロントエンド  >  ルーター Web ウィザード ページの実装

ルーター Web ウィザード ページの実装

一个新手
一个新手オリジナル
2017-10-02 09:45:112541ブラウズ

这一篇是网上比较好的实现方式,请在百度输入关键之搜索“基于Bootstrap实现的上一步下一步表单向导插件Wizard.js”

使用网上的scrollable.js这个插件bug比较多,不推荐使用

下面是我根据需求完成自己写的一份路由器向导页面

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <link rel="stylesheet" type="text/css" href="./guide.css"/>
    <script type="text/javascript" src="./jq.js"></script>
</head>
<body>
    <p id="main">
        <form action="#" method="post">
            <p id="wizard">
                <ul id="status">
                    <li id="netset" class="active">上网方式</li>                    
                    <li id="netset-ppoe" class="hide">PPOE</li>
                    <li id="netset-static" class="hide">静态IP</li>
                    <li id="netset-dynamic" class="hide">动态IP</li>
                    <li id="wireless">无线设置</li>
                    <li id="portal">Portal设置</li>
                    <li id="finish">完成</li>
                </ul>
                <p class="item">
                    <p id="item1" class="page">
                        
                         <h6>本向导提供三种上网方式的选择</h6>   
                        <em>
                            如果是其他上网方式,请点击菜单栏“网络->接口->wan”配置。
                        </em>
                        <p><input id="default" type=radio name="type" value="Auto" checked>路由器自动选择上网方式(默认)</p>
                        <p><input type=radio name="type" value="PPOE">PPOE(ADSL虚拟拨号)</p>
                        <p><input type=radio name="type" value="D">动态IP(自动从网络服务商获取IP地址)</p>
                        <p><input type=radio name="type" value="Static">静态IP(网络服务商提供的IP地址)</p>
                        <p class="btn_nav">
                            <input id="btn1" type="button" class="next right" value="下一步»" />
                        </p>
                    </p>

                    <p id="item1-ppoe" class="hide">
                        <em>请在下面的设置框中填入运营商提供的正确的宽带账号和密码。</em>
                        <p><label>上网账号:</label><input type="text" class="input" name="ppoe-user" /></p>
                        <p><label>上网密码:</label><input type="password" class="input" name="ppoe-passwd" /></p>
                        <p><label>重复密码:</label><input type="password" class="input" name="ppoe-repeat" /></p>
                        <p class="btn_nav">
                            <input id="btn2-1" type="button" class="prev" style="float:left" value="«上一步" />
                            <input id="btn2-2" type="button" class="next right" value="下一步»" />
                        </p>
                    </p>

                    <p id="item1-static" class="hide">
                        <em>请在下面的设置框中填入正确的IP地址、掩码、网关、DNS等信息。</em>
                        <p><label>IPV4地址:</label><input type="text" class="input" name="static-ip" /></p>
                        <p><label>掩码:</label><input type="text" class="input" name="static-mask" /></p>
                        <p><label>网关:</label><input type="text" class="input" name="static-gateway" /></p>
                        <p><label>DNS:</label><input type="text" class="input" name="static-dns" /></p>
                        <p class="btn_nav">
                            <input id="btn2-3" type="button" class="prev" style="float:left" value="«上一步" />
                            <input id="btn2-4" type="button" class="next right" value="下一步»" />
                        </p>
                    </p>

                    <p id="item1-dynamic" class="hide">
                        <em>下面是路由自动获取的IP地址。</em>
                        <p><label>IP地址:</label><input type="text" class="input" name="autoip" /></p>
                        <p class="btn_nav">
                            <input id="btn2-5" type="button" class="prev" style="float:left" value="«上一步" />
                            <input id="btn2-6" type="button" class="next right" value="下一步»" />
                        </p>
                    </p>

                    <p id="item2" class="hide">
                        <em>本向导页面设置路由器无线网络基本参数以及无线安全。</em>
                        <p><label>无线状态:
                            <select>
                                <option value="Enable">开启</option>
                                <option value="Disenable">关闭</option>     
                            </select>
                            </label>
                        </p>
                        <p><label>SSID:</label><input type="text" class="input" name="SSID" value="MT-12346"/></p>
                        <p><label>
                            信道:                          
                            <select name="ch">
                                <option value="ch1">1</option>
                                <option value="ch2">2</option>
                                <option value="ch3">3</option>
                                <option value="ch4">4</option>
                                <option value="ch5">5</option>
                                <option value="ch6">6</option>
                                <option value="ch7">7</option>
                                <option value="ch8">8</option>
                                <option value="ch9">9</option>
                                <option value="ch10">10</option>
                                <option value="ch11" selected="selected">11</option>
                            </select>
                                带宽:
                               <select name="bw">
                                   <option value="bw300">300M</option>
                                   <option value="bw150">150M</option>
                               </select>
                        </label></p>

                        <p><input type=radio name="wireless-security" value="close" checked/>关闭无线安全</p>
                        <p><input type=radio name="wireless-security" value="enable"/>WPA-PSL/WPA2-PSK</p>
                        <p><label>PSK密码:</label><input type="password" class="input" name="security-passwd"/></p>
                        <p class="btn_nav">
                            <input id="btn3-1" type="button" class="prev" style="float:left" value="«上一步" />
                            <input id="btn3-2" type="button" class="next right" value="下一步»" />
                        </p>
                    </p>

                    <p id="item3" class="hide">
                        <h6>受限制的网络连接,HTTP请求都重定向到指定的站点</h6>   
                        <em>本向向导页面设置无线强制认证。</em>
                        <p><label>开启Portal认证:<input type="checkbox" name="portal-enable" value="enable_portal" /></label></p>
                        <p><label>认证服务器地址:</label><input type="text" class="input" name="url" value="192.168.0.251"/></p>
                        <p><label>高级设置:<a href="http://192.168.0.251"><input type="button" class="" value="点击在线配置" name="inline" /></a></label></p>

                        <p class="btn_nav">
                            <input id="btn4-1" type="button" class="prev" style="float:left" value="«上一步" />
                            <input id="btn4-2" type="button" class="next right" value="下一步»" />
                        </p>
                    </p>

                    <p id="item4" class="hide">
                        <h6>
                            <em>恭喜您已经完成了配置。</em></h6>
                            <p>请点击“确定”按钮完成配置。</p>

                            <p class="btn_nav">
                                <input id="btn5-1" type="button" class="next left" value="上一步" />
                                <input id="btn5-2" type="button" class="next right" value="确 定" />
                            </p>
                    </p>
                </p>
            </p>
        </form>
    </p>
    <script type="text/javascript">
        $(document).ready(function () {
            //$(document).bind(&#39;keydown&#39;, HandleTabKey);
        });
        function HandleTabKey(evt) {
            if (evt.keyCode == 9) {
                if (evt.preventDefault) { evt.preventDefault(); }
                else { evt.returnValue = false; }
            }
        }
        $("#btn1").click(function () {
            var type = $(&#39;input:radio:checked&#39;).val();         
            switch (type) {
                case "PPOE":
                    $("#item1").removeClass("page").addClass("hide");
                    $("#item1-ppoe").removeClass("hide").addClass("page");                  
                    break;

                case "Static":
                    $("#item1").removeClass("page").addClass("hide");
                    $("#item1-static").removeClass("hide").addClass("page");
                    break;

                case "D":
                    $("#item1").removeClass("page").addClass("hide");
                    $("#item1-dynamic").removeClass("hide").addClass("page");
                    break;

                default:
                    //todo 自动判断是什么上网方式                   
                    break;
            }
            ClickRadio();
        });

        $("#btn2-2").click(function () {
            $("#item1-ppoe").removeClass("page").addClass("hide");
            $("#item2").removeClass("hide").addClass("page");

            $("#netset-ppoe").removeClass("active").addClass("");
            $("#wireless").removeClass("").addClass("active");
        });

        $("#btn2-4").click(function () {
            $("#item1-static").removeClass("page").addClass("hide");
            $("#item2").removeClass("hide").addClass("page");

            $("#netset-static").removeClass("active").addClass("");
            $("#wireless").removeClass("").addClass("active");
        });

        $("#btn2-6").click(function () {
            $("#item1-dynamic").removeClass("page").addClass("hide");
            $("#item2").removeClass("hide").addClass("page");

            $("#netset-dynamic").removeClass("active").addClass("");
            $("#wireless").removeClass("").addClass("active");
        });

        $("#btn2-1,#btn2-3,#btn2-5").click(function () {
            $("#item1-static").removeClass("page").addClass("hide");
            $("#item1-ppoe").removeClass("page").addClass("hide");
            $("#item1-dynamic").removeClass("page").addClass("hide");

            $("#item1").removeClass("hide").addClass("page");
        });

        $("#btn3-1").click(function () {
            $("#wireless").removeClass("active").addClass("");
            $("#item1-static").removeClass("page").addClass("hide");
            $("#item1-ppoe").removeClass("page").addClass("hide");
            $("#item1-dynamic").removeClass("page").addClass("hide");

            $("#item1").removeClass("hide").addClass("page");

            $("#netset").removeClass("hide").addClass("active");
            $("#netset-dynamic").removeClass("active").addClass("hide");
            $("#netset-static").removeClass("active").addClass("hide");
            $("#netset-ppoe").removeClass("active").addClass("hide");        

        });

        $("#btn3-2").click(function () {
            $("#item2").removeClass("page").addClass("hide");
            $("#item3").removeClass("hide").addClass("page");

            $("#wireless").removeClass("active").addClass("");
            $("#portal").removeClass("").addClass("active");
        });

        $("#btn4-1").click(function () {
            $("#item3").removeClass("page").addClass("hide");
            $("#item2").removeClass("hide").addClass("page");

            $("#portal").removeClass("active").addClass("");
            $("#wireless").removeClass("").addClass("active");
            console.log("4-1");
        });

        $("#btn4-2").click(function () {
            $("#item3").removeClass("page").addClass("hide");
            $("#item4").removeClass("hide").addClass("page");

            $("#portal").removeClass("active").addClass("");
            $("#finish").removeClass("").addClass("active");
        });
       
        $("#btn5-1").click(function () {          
            $("#finish").removeClass("active").addClass("");
            $("#portal").removeClass("").addClass("active");

            $("#item4").removeClass("page").addClass("hide");
            $("#item3").removeClass("hide").addClass("page");
            

        });

        $("#btn5-2").click(function () {
            var data = $("form").serialize()+"\n系统正在重启几分钟后生效";
            alert(data);
        });

        $("#item1 :radio").click(function () {
            ClickRadio();
        });
    
        function ClickRadio()
        {
            var type = $(&#39;input:radio:checked&#39;).val();
            switch (type) {
                case "PPOE":
                    $("#netset-ppoe").removeClass("hide").addClass("active");
                    $("#netset").removeClass("active").addClass("hide");
                    $("#netset-dynamic").removeClass("active").addClass("hide");
                    $("#netset-static").removeClass("active").addClass("hide");

                    break;
                case "Static":
                    $("#netset-static").removeClass("hide").addClass("active");
                    $("#netset").removeClass("active").addClass("hide");
                    $("#netset-dynamic").removeClass("active").addClass("hide");
                    $("#netset-ppoe").removeClass("active").addClass("hide");
                    break;
                case "D":
                    $("#netset-dynamic").removeClass("hide").addClass("active");
                    $("#netset").removeClass("active").addClass("hide");
                    $("#netset-static").removeClass("active").addClass("hide");
                    $("#netset-ppoe").removeClass("active").addClass("hide");
                    break;
                case "Auto":
                    $("#netset").removeClass("hide").addClass("active");
                    $("#netset-dynamic").removeClass("active").addClass("hide");
                    $("#netset-static").removeClass("active").addClass("hide");
                    $("#netset-ppoe").removeClass("active").addClass("hide");
                    break

                default:
                    $("#netset").removeClass("hide").addClass("active");
                    $("#netset-dynamic").removeClass("active").addClass("hide");
                    $("#netset-static").removeClass("active").addClass("hide");
                    $("#netset-ppoe").removeClass("active").addClass("hide");
                    break;
            }
        }
    </script>
</body>
</html>

CSS样式表

@charset "utf-8";
/*CSS DOCUMENT*/
html, body, p, span, h1, h2, h3, h4, h5, h6, p, pre, a, code, em, img, small, strong, sub, sup, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label {
margin:0; padding:0; border:0; outline:0; font-size:16px;vertical-align:baseline;}

a {
    color:#007bc4; 
    text-decoration:none;

}
a:hover{
    text-decoration:underline;

}
ol,ul{
    list-style:none;

}
table{
    border-collapse:collapse;border-spacing:0

}
body{
    height:100%;font:16px "Microsoft Yahei",Tahoma, Helvetica, Arial, Verdana, "\5b8b\4f53", sans-serif;
    color:#51555C;

}

img{
    border:none;

}

#head {
    width:56rem; 
    height:5.75rem;
    margin:0 auto;
}

#wizard {
    border:5px solid #eee;
    height:26rem;
    margin:20px auto;
    width:35.63rem;overflow:hidden;
    position:relative;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    padding:0;
}
#wizard .right{float:right;}
#wizard #status{height:35px;background:#eee;padding-left:1.56rem!important; width:35.63rem;}

#status li{float:left;color:rgb(154,37,143);padding:10px 30px;}

#status li.active{
    background-color:rgb(133,129,216);
    font-weight:normal;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;

}
.page{padding:1.25rem 1.875rem;width:31.25rem;float:left;height:25rem;}

.page em{
    border-bottom:1px dotted #ccc; 
    margin-bottom:20px; 
    padding-bottom:5px;       
    font-style:normal;
    font-size:0.8rem;

}

.btn_nav{
    height:36px; 
    line-height:36px;
    margin:20px auto;
}
.prev,.next{
    width:100px; 
    height:32px;
    line-height:32px; 
    background:url(images/btn_bg.gif) repeat-x bottom; 
    border:1px solid #d3d3d3; 
    cursor:pointer

}

.page p{
    line-height:16px;
    margin-top:0.5rem;
    font-size:0.8rem;
    
}
.page p label{
    display:block;
    font-size:0.8rem;
}

.input{
    width:240px;
    height:18px; 
    margin:10px auto;
    line-height:20px; 
    border:1px solid #d3d3d3;
    padding:2px
}

.hide {
    display:none;
}

以上がルーター Web ウィザード ページの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。