【问题标题】:how to stay on the same page after clicking submit button单击提交按钮后如何保持在同一页面上
【发布时间】:2017-07-21 09:42:18
【问题描述】:

我正在创建一个登录表单,如果任何输入错误,那么我想留在同一页面上并通知客户输入正确的输入 我想留在这个页面上http://localhost:8080/loginpage/,但每次点击后我都会被重定向到http://localhost:8080/loginpage/?UserName=UserName&pword=&ConfirmPassword=&Email=Email&FirstName=First+Name&LastName=Last+Name&cars=male&Signup=Signup

我已经为此编写了一个代码,但它似乎不起作用。

if(t!==0)
 {
     var er="Email-id already exists";
     window.location.reload(false); 
     document.getElementById("nemail").value=er;
     document.getElementById("username").value=username;
     document.getElementById("pword").value="";
     document.getElementById("confpwd").value="";
     document.getElementById("fname").value=fname;
     document.getElementById("lname").value=lname;
     document.getElementById("gender").value=gender;
 }

我尝试过使用其他几种方法,例如

 window.location.replace('/loginpage/');

 window.location.href="/loginpage/index.html";

但它们都不起作用。 请帮忙!

【问题讨论】:

    标签: javascript netbeans glassfish-3


    【解决方案1】:

    有两种方法可以阻止表单提交。

    1. 设置表单onsubmit="return false"
    2. 在 from 上注册提交事件。在回调中调用event.preventDefault()

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <h2>1 way to prevent form to submit via onclick attribute</h2>
    <form action="#submit-from-1-way" onsubmit="return validate(this)"><!--set onsubmit="return false"-->
        <input name="value"/>
        <button type="submit">Submit</button>
    </form>
    
    <h2>2 way to prevent form to submit via submit event</h2>
    <form id="form" action="#submit-from-2-way"><!--set onsubmit="return false"-->
        <input name="value"/>
        <button type="submit">Submit</button>
    </form>
    
    
    <script>
        console.log(location.href+'#'+location.hash+'?'+location.search);
        function validate(form) {
            return $(form).find('input').val();
        }
        
        $('#form').submit(function (e) {
            if (!validate(this)) e.preventDefault();
        });
    </script>

    【讨论】:

    • 但我还必须提示客户输入正确的输入。那我该怎么做。只有在这种情况下我才想留在同一页面上
    • 对不起,我迟到了。我已经编辑了我的答案。你可以在你最喜欢的编辑器中试试。
    【解决方案2】:

    您可以在给定 html 对象的单击事件上使用 preventDefault()。这将阻止浏览器对特定 HTML 对象执行默认操作。

    例如防止链接上的动作:

    <body>
     <a href="http://www.google.com" id="clickMe">Click Me</a>
    <script>
    
    function dontGo(event) {
        event.preventDefault();
    }
    
    document.getElementById("clickMe").addEventListener("click",dontGo);
    
    </script>
    
    </body>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多