1 回答

TA貢獻1911條經(jīng)驗 獲得超7個贊
這是你的工作代碼。只需運行代碼片段就可以看到它的實際效果。
status你總是的原因false是你在點擊事件之外聲明它。一旦您的所有輸入都經(jīng)過驗證,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>
添加回答
舉報