【问题标题】:How to direct a user directly to a form如何将用户直接引导到表单
【发布时间】:2019-03-21 02:19:13
【问题描述】:

我现在设置的是一个登录表单和一个注册表单,它们设置在一个页面中,但它使用一些 Jquery 在表单之间来回切换。当登录表单显示时,注册表单被隐藏,反之亦然。页面加载时,会显示登录表单,并隐藏注册表单,并可以通过按钮在两者之间切换。这是我遇到的问题。我用一些 PHP 在注册表单上创建了一些错误处理程序(只有在页面最初加载时才显示登录表单),所以说当用户输入无效的用户名时,我想将他们正确输入的字段返回给通过 URL 形成。问题是当我返回 URL 时显示登录表单,而不是我需要从 URL 输入数据的注册表单。我正在寻找一种在页面加载时直接访问注册表单的方法,也许有一种方法可以将链接直接附加到注册表单本身?我希望我能清楚地描述我的问题。任何帮助表示赞赏。

<?php
    require 'header.php';
  ?>

<div class="form-data text-center">
  <h1 class="form-header">Header</h1>
    <div id="login" class="main-login">
        <form class="login-form" action="includes/login.inc.php" method="post">
          <input name="mailuid" type="text" placeholder="Page Name"></input>
          <br>
          <input name="pwd" type="password" placeholder="Password"></input>
          <br>
          <button name="login-submit" type="submit">Login</button>
        </form>
        <p>Need to create a page?</p>
        <a class="btn btn-default" href="#" id="toggle-signup">Sign up</a>
    </div>

    <div id="signup" class="text-center">
        <form href="login_signup/signup" class="signup-form" action="includes/signup.inc.php" method="post">
          <input name="pagename" type="text" placeholder="Page Name"></input>
          <br>
          <input name="email" type="text" placeholder="Email"></input>
          <br>
          <input name="pwd" type="password" placeholder="Password"></input>
          <br>
          <input name="pwd-repeat" type="password" placeholder="Repeat Password"></input>
          <br>
          <button name="signup-submit" type="submit">Login</button>
        </form>
        <p>Already have an account?</p>
        <a class="btn btn-default" href="#" id="toggle-login">Log In</a>
    </div>
</div>

<script>
  $("#toggle-login").click(function(){
      $("#signup").hide().attr("formnovalidate");
      $("#login").show();
  });

  $("#toggle-signup").click(function(){
      $("#login").hide().attr("formnovalidate");
      $("#signup").show();
  });

  $("document").ready(function(){
      $("#signup").hide();
  });
</script>

【问题讨论】:

  • 您的页面需要确定要显示的表单,然后将其作为参数(与 PHP 相呼应)放入您的 .ready 函数中,而不是始终使用 signup
  • 您能再解释一下吗?我是 php 新手
  • 你可以让生活变得轻松并使用 2 页,我知道所有酷孩子都使用 jquery,但这并不意味着它是适合每项工作的工具
  • 您没有显示任何使用提交的表单数据做出决定的代码,所以我无法具体说明。但是,无论该代码在哪里,您都可以设置一个要隐藏的变量:默认情况下为$hide = 'signup';,如果他们尝试注册,则为$hide = 'login';。然后在你的.ready 函数中,$("&lt;?= $hide ?&gt;".hide();
  • 是的,我知道使用两个不同的页面是一个简单的解决方案。只是想知道如何以这种方式完成。

标签: php jquery html


【解决方案1】:

解决此问题的常用方法是在提交表单之前通过javascript验证注册字段。

您可以使用 javascript/jQuery 中断提交过程,检查每个字段的值,并且 - 如果一个或多个字段验证失败 - return false 将控制权返回给用户以解决问题并尝试再次。

以下是一些代码示例和演示:

要中断提交,您只需使用:

$('#id_of_your_form').submit(function(){
    let var_valid = true; //any variable name will do...
    //
    //validation code goes here - see next demo below
    //
    if (!var_valid) return false;
    //if the code gets here, it will continue submitting
});

这是一个如何进行基本字段验证的示例。

http://jsfiddle.net/W4g4e/7/

【讨论】:

    猜你喜欢
    • 2010-10-09
    • 1970-01-01
    • 2018-12-19
    • 2016-02-12
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2014-07-21
    相关资源
    最近更新 更多