我的JS代码:
var name_valid = false;
$("#InputName").blur( function(){
if ($(this).val() != ""){
name_valid = true;
} else {
name_valid = false;
}
});
if (name_valid === true){
alert('ok');
}
console.log(name_valid);
我实际上不理解为什么我的代码无法正常工作。
如果我的<input>
不为空,则必须提醒(“确定”),但我什么也得不到。
为什么我的boolean
值最后仍然是false
?
答案 0 :(得分:1)
因为它是一个回调函数,仅在模糊函数完成后才执行。这意味着该行if (name_valid === true)
在此行if ($(this).val() != "")
之前执行。
尝试将您的代码更改为此:
var name_valid = false;
$("#InputName").blur( function(){
if ($(this).val() != ""){
name_valid = true;
} else {
name_valid = false;
}
if (name_valid === true){
alert('ok');
}
console.log(name_valid);
});
答案 1 :(得分:1)
您犯了一个小错误,应该将最后一个if
语句放入回调函数中,如下所示:
var name_valid = false;
$("#InputName").blur(function () {
if ($(this).val() !== "") {
name_valid = true;
} else {
name_valid = false;
}
if (name_valid === true) {
alert('ok');
}
console.log(name_valid);
});
答案 2 :(得分:0)
您的条件式仅在页面加载时运行。您希望它在事件处理程序中,以便在实际触发事件时运行
var name_valid = false;
$("#InputName").blur(function() {
if ($(this).val() != "") {
name_valid = true;
} else {
name_valid = false;
}
if (name_valid === true) {
alert('ok');
}
console.log(name_valid);
});
答案 3 :(得分:0)
var name_valid = false;
$("#InputName").blur( function(){
if ($(this).val() !== ""){
name_valid = true;
}
if (name_valid === true){
alert('ok');
}
console.log(name_valid);
});
答案 4 :(得分:0)
请尝试这个。
$(document).ready(function () {
var name_valid;
$("input").blur(function () {
if ($(this).val() != "") {
name_valid = true;
} else {
name_valid = false;
}
if (name_valid) {
alert('ok');
}
});
});