2016-10-13 10 views
0

テキストボックスがテキストで埋められているかどうかを検証しようとしています。文字が入力されていない場合、アラート(alert("Name must be filled out");)はうまく機能しますが、それ以外の場合は、一部の文字が入力されたとき(else window.location.href = 'http://www.w3schools.com';)URLに転送されません。JavaScriptを使用してURLにナビゲートする方法

いくつかの方法を教えてください。前もって感謝します。

<html> 
 
<head> 
 
<script> 
 
function validateForm() { 
 
var x = document.forms["registration"]["name"].value; 
 
    if (x == null || x == "") { 
 
     alert("Name must be filled out"); 
 
\t  return false; 
 
\t } else window.location.href = 'http://www.w3schools.com'; 
 
} 
 
</script> 
 

 
</head> 
 
<body> 
 

 
<form name="registration" method="post" > 
 
Name <input type="text" name="name" /> 
 
<br> 
 
<button type="Submit" name="submit" onClick="validateForm()" >Submit</button> 
 

 
</form> 
 
</body> 
 
</html>

+1

をボタン「タイプ」を変更することで問題を解決し、それは私が@Lokuztに同意男 – Lokuzt

+0

の作品スニペット。できます。 –

+0

中括弧をより一貫して使用することをお勧めします。つまり、 'else'節のほかに' if'節のまわりにそれらを持っています。 –

答えて

1

あなたがフォームの送信がブロックされているので、実際に問題を再現しません提供してきましたライブスニペット:

http://stacksnippets.net/js」にブロックされたフォームの送信フォームの枠理由サンドボックス化されており、 'allow-forms'権限が設定されていません。他の場所で

、それはJavaScriptが実行が終了した後ので、URLに転送しない、フォームが(これがトリガーlocationに新しい値を割り当てることを新しいページのロードを置き換える)新しいページのロードをトリガする送信します。

onclick関数からfalseを返すか、送信ボタンを使用してJSをトリガーする必要があります。答えを

0

みんなありがとう、私は、コードを実行

<button type="button" name="submit" onClick="validateForm()" >Submit</button>

関連する問題