【问题标题】:display a div based on url parameter根据 url 参数显示一个 div
【发布时间】:2015-04-14 09:33:41
【问题描述】:

我的网站是trackschoolbus.com。您可以在右上角看到一个登录表单。我设置的是,当输入错误时,它会重定向到主页,参数为?er=1,即http://www.trackschoolbus.com/?er=1。 当错误 url 出现时我需要显示一条错误消息,所以我写了

<script type="text/javascript"> 
   $(function(){ 
           if (document.location.href.indexOf('er=1') > 0) 
$("#display").show(); 
   }); 
</script>

而 html 是

<div id="display" style="display:none;">wrong input</div>

我的登录表单是

<form name="login-form" id="login-form" method="post" action="http://www.trackschoolbus.com/vehicleTracking/index.php">
    <input name="LoginForm[username]" id="LoginForm_username" type="text" placeholder="Registered Email" value="" class="error" required/>
    <input maxlength="30" name="LoginForm[password]" id="LoginForm_password" type="password" placeholder="Password" value="" class="error" required />
    <input type="submit" onclick="this.disabled=true;this.form.submit();" name="yt0" class="btn-submit" value="Login" />
</form> 

仍然显示没有显示。

【问题讨论】:

  • 你可以使用 php 条件代替 Javascript
  • 如何添加?
  • $("#display").show(); 里面是if{ }还是代码格式是这样的?
  • &lt;input type="submit" onclick="this.disabled=true;this.form.submit();" 非常值得怀疑。永远不要在提交事件中提交,并且在某些情况下,当按钮被禁用时提交事件会停止。而是在 FORM 的提交事件中隐藏或替换它
  • $("login-form").on("submit",function() { $("input[name='yt0']").hide();});

标签: javascript php jquery html forms


【解决方案1】:

使用 php

    <form name="login-form" id="login-form" method="post" action="http://www.trackschoolbus.com/vehicleTracking/index.php">
            <input name="LoginForm[username]" id="LoginForm_username" type="text" placeholder="Registered Email" value="" class="error" required/>
            <input maxlength="30" name="LoginForm[password]" id="LoginForm_password" type="password" placeholder="Password" value="" class="error" required />
            <input type="submit" onclick="this.disabled=true;this.form.submit();" name="yt0" class="btn-submit" value="Login" />
            <?php if (isset($_GET['er']) && $_GET['er'] == 1) {
                echo '<div id="display">wrong input</div>';
            }?>
            </form> 

【讨论】:

    【解决方案2】:

    您可以使用此代码

    if ($_REQUEST['er']==1)
    {
       echo '<script type="text/javascript"> 
          $("#display").show(); 
       </script>';
    }
    

    【讨论】:

    • 它可能有效,但它不如仅使用 PHP(Madalin 的解决方案)生成 div 优雅。您的解决方案注入了一个显示现有 div 的脚本,这是两步而不是一步。
    • @JeremyThille 我认为他的回答总是会显示:none of div
    • 更多理由:)
    【解决方案3】:

    这在javascript中比较简单。

    在本帖使用代码sn-p:How can I get query string values in JavaScript?

    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    if (getParameterByName("er") == "1") 
        $("#display").show(); 
    }); 

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-22
      • 2018-08-12
      • 2015-12-21
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多