使用VS 2010开发ASP.NET Web窗体应用程序,并在页面上具有登录文本框和密码文本框。
在这些上方,我有一个简单的div标记,如果登录文本框或密码文本框为空,它将包含错误消息。
JSFIDDLE<div id="ErrorDiv"></div>
如果任一文本框为空,我希望此div向下滑动以显示错误消息
以下是我尝试过的jQuery代码:
<script>
$(function () {
$("#btnLogin").click(function () {
var error = 0;
if (error == 0) {
$("#ErrorDiv").slideToggle();
}
if ($("#txtLoginID").val() == "") {
error = 1;
$("#ErrorDiv").text("Please Enter LoginID");
}
if ($("#txtPassword").val() == "") {
error = 1;
$("#ErrorDiv").text("Please Enter Password");
}
if (error == 1) {
alert(document.getElementById("ErrorDiv").value());
$("#ErrorDiv").show();
}
else {
alert(document.getElementById("ErrorDiv").value());
$("#ErrorDiv").slideUP();
}
});
});
</script>
这是行不通的。
我也尝试用
$("#ErrorDiv").text("Please Enter LoginID");
替换$("#ErrorDiv").html("Please Enter LoginID");
,但这没有效果。可能是什么问题?
最佳答案
首先,这条线不起作用
$("#ErrorDiv").slideUP();
它应该是
$("#ErrorDiv").slideUp(); //lower case p
其次,您的警报
document.getElementById("ErrorDiv").value
无法使用,因为它是一个div,因此没有值。您可以提醒它是innerHTML document.getElementById("ErrorDiv").innerHTML
或使用jQuery $('#ErrorDiv').text()
我的第一个
if
语句中也没有指出重点if(error == 0)
每次单击按钮时,将变量error设置为0,因此该语句将始终运行。如果这是您想要执行的操作,则最好始终滑动Toggle
div
var error = 0;
$('#ErrorDiv').slideToggle();
我在这里更新了您的小提琴-> http://jsfiddle.net/d9Wwj/3/
我也改变了你的一些逻辑。没有更多错误时,您也不会清除
ErrorDiv
。下面是成品
$((function(){
$("#btnLogin").click(function (){
var error = "";
$('#ErrorDiv').slideToggle();
if($("#txtLoginID").val() == ""){
error += "Please Enter LoginID";
}
if($("#txtPassword").val() == ""){
if(error){
error += "<br />Please enter a password";
} else {
error += "Please enter a Password";
}
}
if(!error){
$("#ErrorDiv").html("").slideUp();
} else {
$('#ErrorDiv').html(error).slideDown();
}
});
});