此代码适用于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吗?
答案 0 :(得分:1)
在javascript else子句中,您正在清除内容,但在jQuery子句中,您隐藏了整个错误元素。
而不是
$("#errorname").hide()
试
$("#errorname").html("")
答案 1 :(得分:1)
您需要在设置html后显示errorname
$("#errorname").html('<div id = "error_left"></div>'+
'<div id = "error_right"><p>This is a required field</p></div>').show();
如果有效条目,则隐藏errorname
div,如果值无效,则需要设置错误消息并设置div的可见性。
演示:Plunker
答案 2 :(得分:0)
你的onblur正在调用check_u()
,但你的其他jQuery示例的函数名是checkUser()