javascript - 使用 jQuery 通过 url 中的哈希值显示页面的一部分

标签 javascript jquery html

嗯,这个项目是我想到这个问题的原因:
当我点击注册按钮时,PHP 脚本将处理它并显示错误,但页面将位于登录表单。

界面:
Login Page Register Page

现在的想法:
如果url中有一些参数,则将其处理到jQuery中,并从url中显示请求的页面。

示例:someurl.com/#login - 然后显示登录页面
someurl.com/#register - 然后显示注册页面

尝试过的解决方案(jQuery):

$(function() {
// get the `hash` from the url
var url = window.location.hash;
// display the page
$(url).show();
}

<小时/> 我现在的代码:

脚本:

$(function() {
    var url = window.location.hash;
    $(url).show();

    $('#login-form-link').click(function(e) {
        $("#login-form").delay(100).fadeIn(100);
        $("#register-form").fadeOut(100);
        $('#register-form-link').removeClass('active');
        $(this).addClass('active');
        e.preventDefault();
        $(document).prop('title', 'Login | Prospekt');
    });
    $('#register-form-link').click(function(e) {
        $("#register-form").delay(100).fadeIn(100);
        $("#login-form").fadeOut(100);
        $('#login-form-link').removeClass('active');
        $(this).addClass('active');
        e.preventDefault();
        $(document).prop('title', 'Register | Prospekt');
    });

});

表格:

<div class="container">
        <div class="row">
            <div class="col-md-6 col-md-offset-3">
                <div class="panel panel-login">
                    <div class="panel-heading">
                        <div class="row">
                            <div class="col-xs-6">
                                <a href="#" class="active" id="login-form-link">Login</a>
                            </div>
                            <div class="col-xs-6">
                                <a href="#" id="register-form-link">Register</a>
                            </div>
                        </div>
                        <hr>
                    </div>
                    <div class="panel-body">
                        <div class="row">
                            <div class="col-lg-12">
                                <form id="login-form" action="http://phpoll.com/login/process" method="post" role="form" style="display: block;">
                                    <div class="form-group">
                                        <input type="text" name="username" id="username" tabindex="1" class="form-control" placeholder="Username" value="">
                                    </div>
                                    <div class="form-group">
                                        <input type="password" name="password" id="password" tabindex="2" class="form-control" placeholder="Password">
                                    </div>
                                    <div class="form-group text-center">
                                        <input type="checkbox" tabindex="3" class="" name="remember" id="remember">
                                        <label for="remember"> Remember Me</label>
                                    </div>
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-sm-6 col-sm-offset-3">
                                                <input type="submit" name="login-submit" id="login-submit" tabindex="4" class="form-control btn btn-login" value="Log In">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-lg-12">
                                                <div class="text-center">
                                                    <a href="http://phpoll.com/recover" tabindex="5" class="forgot-password">Forgot Password?</a>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </form>
                                <form id="register-form" action="http://phpoll.com/register/process" method="post" role="form" style="display: none;">
                                    <div class="form-group">
                                        <input type="text" name="username" id="username" tabindex="1" class="form-control" placeholder="Username" value="">
                                    </div>
                                    <div class="form-group">
                                        <input type="email" name="email" id="email" tabindex="1" class="form-control" placeholder="Email Address" value="">
                                    </div>
                                    <div class="form-group">
                                        <input type="password" name="password" id="password" tabindex="2" class="form-control" placeholder="Password">
                                    </div>
                                    <div class="form-group">
                                        <input type="password" name="confirm-password" id="confirm-password" tabindex="2" class="form-control" placeholder="Confirm Password">
                                    </div>
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-sm-6 col-sm-offset-3">
                                                <input type="submit" name="register-submit" id="register-submit" tabindex="4" class="form-control btn btn-register" value="Register Now">
                                            </div>
                                        </div>
                                    </div>
                                </form>
                            </div>
                        </div>
                    <!--
                    <hr>
                        <div class="alert alert-warning alert-dismissible">
                          <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                          Username is required! <br>
                          Password is required!
                        </div>
                    -->
                    </div>
                </div>
            </div>
        </div>
</div>

最佳答案

从 URL 获取哈希值后,在声明点击处理程序后调用与该哈希值对应的 click() 事件。

$(function() {

    $('#login-form-link').click(function(e) {
        $("#login-form").delay(100).fadeIn(100);
        $("#register-form").fadeOut(100);
        $('#register-form-link').removeClass('active');
        $(this).addClass('active');
        e.preventDefault();
        $(document).prop('title', 'Login | Prospekt');
    });
    $('#register-form-link').click(function(e) {
        $("#register-form").delay(100).fadeIn(100);
        $("#login-form").fadeOut(100);
        $('#login-form-link').removeClass('active');
        $(this).addClass('active');
        e.preventDefault();
        $(document).prop('title', 'Register | Prospekt');
    });

    var url = window.location.hash;
    $(url + '-form-link').click();
});

关于javascript - 使用 jQuery 通过 url 中的哈希值显示页面的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40944899/

相关文章:

javascript - 在 `<a>` anchor 标记中存储一些数据的正确方法是什么?

javascript - 动态表单操作 URL

Javascript 函数查找数字的倍数

javascript - 在选项标签中显示下拉项

jquery - 在核心标记中包含移动特定内容?

javascript - jquery Mobile 在滑动时更改背景颜色

jquery - codaSlider hack - 如何添加覆盖图像的小三 Angular 形

javascript - Jquery - 每个循环在点击事件中不起作用

java - 正则表达式用于查找两个 HTML 标签之间所有可能的内容(包括外来字符)

javascript - 是否可以修复 SlickGrid 的列大小调整错误?