输入rest webservices URL时切换JavaScript函数

时间:2016-06-14 14:21:47

标签: javascript spring-mvc spring-boot thymeleaf

我在同一页面中有两个表单,当点击图标时会出现一个登录消失并显示注册。我正在使用spring mvc,因此我想在输入/注册切换表单工作的函数时。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Login Form</title>

    <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
          href="../static/css/reset.css"/>

    <link rel='stylesheet prefetch'
          href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900|RobotoDraft:400,100,300,500,700,900'/>
    <link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'/>

    <!--<link rel="stylesheet" href="../static/css/style.css"/>-->
    <link rel="stylesheet" th:href="@{/css/style.css}"
          href="../static/css/style.css"/>


</head>

<body>


<!-- Mixins-->
<!-- Pen Title-->

<div class="container">
    <div class="card"></div>
    <div class="card">
        <h1 class="title">Login</h1>
        <form action="login" th:action="@{/login}" th:object="${login}" method="post" >
            <div class="input-container">
                <input type="email" id="email" th:field="*{email}"  required="required"/>
                <label for="email">email</label>
                <div class="bar"></div>
            </div>
            <div class="input-container">
                <input type="password" id="Password" th:field="*{password}"  required="required"/>
                <label for="Password">Password</label>
                <div class="bar"></div>
            </div>
            <div class="button-container">
                <button  type="submit" name="action" value="login"><span>Go</span></button>
            </div>
            <div class="footer"><a href="#">Forgot your password?</a></div>
        </form>
    </div>
    <div class="card alt">
        <div class="toggle"></div>
        <h1 class="title">Register
            <div class="close"></div>
        </h1>
        <form action="register" th:action="@{/register}" th:object="${register}" method="post">
            <div class="input-container">
                <input type="text" id="firstName" th:field="*{firstName}" required="required"/>
                <label for="firstName">First Name</label>
                <div class="bar"></div>
            </div>

            <div class="input-container">
                <input type="text" id="lastName" th:field="*{lastName}" required="required"/>
                <label for="lastName">Last Name</label>
                <div class="bar"></div>
            </div>

            <div class="input-container">
                <input type="email" id="email_" th:field="*{email}" required="required"/>
                <label for="email">Email</label>
                <div class="bar"></div>
            </div>
            <div class="input-container">
                <input type="password" id="Password_" th:field="*{password}" required="required"/>
                <label for="Password">Password</label>
                <div class="bar"></div>
            </div>
            <div class="button-container">
                <button  type="submit" name="action" value="register"><span>Next</span></button>
            </div>
        </form>
    </div>
</div>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>

<script th:src="@{/js/index.js}"></script>


</body>
</html>

JavaScript代码:

$('.toggle').on('click', function() {
  $('.container').stop().addClass('active');
});

$('.close').on('click', function() {
  $('.container').stop().removeClass('active');
});

我希望例如在输入/注册时检索寄存器表单而不是登录

1 个答案:

答案 0 :(得分:0)

一种方法是创建一个 / register 控制器,它将返回一个参数:

@RequestMapping("/register") 
public ModelAndView register() {
   ModelAndView mv = new ModelAndView("your_form_page")
   mv.addObject("isRegister", true);
   return mv;
}

然后你可以添加一个隐藏的字段并在javascript中使用它来切换div:

<!DOCTYPE html>
<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
    xmlns:th="http://www.thymeleaf.org">

    <head>
        <!-- imports omitted -->
        <script type="text/javascript">
            $(document).ready(function () {
                if ($("#isRegister").val()) {
                    $("#register").show();
                    $("#signUp").hide();
                } else {
                    $("#register").hide();
                    $("#signUp").show();
                }
            });
        </script>


    </head>

    <body>
        <input id="isRegister" type="hidden" th:value="${isRegister}" disabled="disabled"/>


        <div id="signUp">
            Sign Up Form
        </div>
        <div id="register">
            Register Form
        </div>

    </body>
</html>

当然,您可以将Javascript代码段移动到“.js”文件中。这里重要的是拥有隐藏的输入字段,可以在Javascript中访问以切换DIV。