このコードは、Javascript でうまく機能します。
function check_u() {
var errormessage = document.getElementById("errorname");
var user = document.forms["login"]["user"].value;
if (user == null || user == "") {
errormessage.innerHTML = "Please enter your user id";
} else {
errormessage.innerHTML = "";
}
}
function check_p() {
var errormessage = document.getElementById("errorpass");
var pass = document.forms["login"]["password"].value;
if (pass == null || pass == "") {
errorShow.innerHTML = "Password cannot be blank";
} else {
errorShow.innerHTML = "";
}
}
私のhtmlは:
<input type="text" name="user" autocomplete="off" onBlur="check_u()" />
<input type="text" name="password" autocomplete="off" onBlur="check_p()" />
<div id="errorname" />
このコードの代替案を jQuery で作成しました。JavaScript では問題なく動作しますが、jQuery では初めて入力を入力しないとエラー メッセージが表示されます。何らかの値を入力すると、エラー メッセージがクリアされます。入力を空白のままにすると、エラーメッセージは表示されません。ここに私のjQueryコードがあります:
function check_u(){
var fieldValue = $("input[name=user]").val();
if(fieldValue==""||fieldValue==null){
$("#errorname").html('<div id = "error_left"></div>'+
'<div id = "error_right"><p>This is a required field</p></div>');
}else{
$("#errorname").hide();
}
}
繰り返し呼び出した場合、エラー名の div が表示されないのはなぜですか?
.hide() は div をクリアするだけではありませんか?