0

私のコードを正しくチェックしていないjavascriptに問題があります。この場合、具体的に何が問題なのか誰かが教えてくれることを願っています。私が達成しようとしているのは、フィールドのいずれかが空白の場合、またはパスワード フィールドが 8 文字未満の場合、可能な結果のいずれかでアラートが表示されることです。ただし、すべてのフィールドを空白以外に入力すると、フォームが送信されて次のページに移動します。ここで何か基本的なことが欠けていますか?

<script>
function validateForm()
{
//var x=document.register.username.value
var x="document.forms["register"]["username"].value";
var y="document.forms["register"]["homeaddress"].value";
var z="document.forms["register"]["password"].value";
if (x == "" || y == "" || z == "")       {
alert("You must fill in all fields in the application");

return false;
} else if (z.length < 8) {
alert("Passwords must be at least 8 characters long");
 return false;
   }

return true;
}
</script>

フォームは次のとおりです。

<form name="register" method="post" action="tryregister.php" onsubmit="return validateForm();">

Username: <input type="text" name="username" maxlength="50"><br>
Home address: <input type="text" name="homeaddress" maxlength="50"><BR>
Password: <input type="password" name="password" maxlength="50"><br>

<input type="submit" value="Register me!">
4

4 に答える 4

2

前後の二重引用符を削除します

var x="document.forms["register"]["username"].value";
      ^^                                           ^^

そのような

var x = document.forms['register']['username'].value
于 2013-10-05T18:03:12.600 に答える
2

はい、ここで基本的なことを見逃しています。

あなたのコードでは、

var x="document.forms["register"]["username"].value";
var y="document.forms["register"]["homeaddress"].value";
var z="document.forms["register"]["password"].value";

xstring であると宣言しています'document.forms["register"]["username"].value'

これは、何らかの値に評価される式でなければなりません。

したがって、このコードを次のように更新してください。

var x=document.forms["register"]["username"].value;
var y=document.forms["register"]["homeaddress"].value;
var z=document.forms["register"]["password"].value;
于 2013-10-05T18:03:20.597 に答える
1

x、、yおよびの割り当てを囲む引用符を削除する必要がありますz

var x=document.forms["register"]["username"].value;
var y=document.forms["register"]["homeaddress"].value;
var z=document.forms["register"]["password"].value";
于 2013-10-05T18:05:32.300 に答える