1 回答
TA贡献1911条经验 获得超7个赞
这是你的工作代码。只需运行代码片段就可以看到它的实际效果。
status你总是的原因false是你在点击事件之外声明它。一旦您的所有输入都经过验证,status = false 不知道在哪里更新为 true。
我总是.show()为您的错误添加了一个功能.html。基本上,如果所有输入都很好,则errorMessage元素将隐藏,并且如果用户再次从输入中删除 a 值 - div 设置为hide()因此我们需要在同一元素上再次显示错误。
基本上它不在click事件中scope
$("#btn").on('click', function() {
var status = false;
var error = "";
var missing = "";
if (!$("#email").val()) {
missing += "<br> Email";
}
if ($("#number").val() == "") {
missing += "<br> Phone Number";
}
if (missing != "") {
error += "Following field(s) are missing:" + missing;
}
if (error != '') {
$("#errorMessage").html(error).show();
} else {
$("#errorMessage").hide();
status = true;
}
if (status == true) {
alert("done");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="email" />
<input type="text" id="number" />
<button id="btn">Click Me</button>
<div id="errorMessage"></div>
添加回答
举报