if文としてjavascriptコードにテスト書式を追加すると、何分の1秒間エラーが発生してから消えることが示されます。テストフォーマットを削除しても、エラーは正常に表示されます。どうしてこれなの?JavaScriptのテスト書式if文のエラー
<!DOCTYPE html>
<head>
<title>Settings</title>
<style>
.entry, textarea {
float: right;
width: 500px;
resize: none;
padding: 1px;
margin-right: 200px;
}
</style>
</head>
<body>
<div id="content">
<h1 style="margin-top: 0px">Settings</h1>
<form onSubmit="return checkForm(this)">
<label for="username" class="label"> Change Username:</label>
<input type="text" id="username" class="entry"/></br>
<p class=error id="usernameError"><?php echo $error;?></p>
<br/>
<label for="email" class="label"> Change E-mail:</label>
<input type="email" id="email" class="entry"/> <br/>
<p class=error id="firstnameError"></p>
<br/>
<label for="password" class="label">Change Password:</label>
<input type="password" id="password" class="entry"/> <br/>
<p class=error id="passwordError"></p>
<br/>
<label for="confirmPassword" class="label">Confirm Password:</label>
<input type="password" id="confirmpassword" class = "entry"/>
<br/>
<p class=error id="confirmpasswordError"></p>
<br/>
<label for="address" class="label">Change Address:</label>
<textarea id = "address" rows="3" class="entry"></textarea><br/><br/><br/><br/>
<label for="mobile" class="label">Change Mobile Number:</label>
<input type="tel" id="mobile" class="entry"/> <br/><br/><br/>
<br/>
<input type="submit" id="confirm" name="confirm" value="Confirm Changes" style= "font-size: 15px; background: #f5f5f5;
width: 20%; margin-right: 20%" class="entry" />
</form>
</div>
<script type="text/javascript" >
function checkForm(form){
var username = document.getElementById("username").value;
var mailformat = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var usernameformat = /^[\w ]+$/;
var password = document.getElementById("password").value;
var confirmpassword = document.getElementById("confirmpassword").value;
var ok = true;
if (!usernameformat.test(username))
{
document.getElementById("usernameError").innerHTML = "No symbols please!";
ok = false;
}
if (password!=confirmpassword)
{
document.getElementById("passwordError").innerHTML = "Passwords do not match";
document.getElementById("confirmpasswordError").innerHTML = "Passwords do not match";
ok = false;
}
if (!mailformat.test(email)) {
document.getElementById("emailError").innerHTML = "Input a valid email";
ok = false;
}
return ok;
}
</script>
</body>
</html>
をお使いのエラーコンソールを読む: 'キャッチされない例外TypeErrorを:null'なので – epascarello
のプロパティ「innerHTMLプロパティ」を設定することはできません私はそれが悪い形であることを知っています。しかし、質問のために、最終的にスクリプトタグの間のHTMLファイルに埋め込まれています。 –
電子メールのエラーフィールドは 'emailError'ではなく' firstnameError'と呼ばれます。 JSエラーコンソールに注意を払い、常に仮定をチェックしてください。たとえば、 'document.getElementById(" emailError ")'をコンソールに入力して、そのような要素が存在しないことを確認してください。 –