2017-03-01 23 views
1

私はログインフォームを作成しています。入力が間違っている場合は、同じページに留まり、正しい入力を入力するようにクライアントに通知します。 このページには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"; 

のようないくつかの他の方法を使用しようとしました。しかし、それらのどれも機能しません。 助けてください!

答えて

1

フォームを送信しないようにするには、2通りの方法があります。

  1. セットフォームonsubmit="return false"
  2. から送信イベントを登録します。コールバックコールevent.preventDefault();あなたが与えられたHTMLオブジェクトのクリックイベントでの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>

+0

が、私はまた、私は上の滞在したいような場合にthat.Onlyを行いますどのように正しいinput.Thenを入力するようにクライアントを要求しなければなりません同じページ – aeshna

+0

お待ちください、私は答えを –

+0

event.preventdefault()働いて編集します。ありがとう – aeshna

0

。これにより、ブラウザは特定のHTMLオブジェクトに対してデフォルトのアクションを実行しなくなります。

リンクをactoin防ぐために、たとえばの場合:

<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> 
+0

ありがとうございました。 event.preventDefault()が機能しました。 – aeshna

関連する問題