Javascript 这是为什么;如果;即使条件为false也始终执行?
这是我的代码:Javascript 这是为什么;如果;即使条件为false也始终执行?,javascript,jquery,validation,Javascript,Jquery,Validation,这是我的代码: $('.btn-back').off('click').on('click', function (event) { var valid = carInfo.validate(); if (valid) { event.preventDefault(); } }); 无论有效值是多少,语句event.preventDefault()始终执行 当我将代码更改为 $('.btn-back').off('click').on('click',
$('.btn-back').off('click').on('click', function (event) {
var valid = carInfo.validate();
if (valid) {
event.preventDefault();
}
});
无论有效值是多少,语句event.preventDefault()
始终执行
当我将代码更改为
$('.btn-back').off('click').on('click', function (event) {
var valid = carInfo.validate();
if (valid) {
event.preventDefault();
} else {
}
});
它按它应该的方式运行。可能与自动分号插入(ASI)有关。使用插件方式:
carInfo.validate()将返回
所以valid
变量总是true
。从以下位置使用有效的方法:
使用插件的方式:
carInfo.validate()将返回
所以valid
变量总是true
。从以下位置使用有效的方法:
那么什么是validate
函数?可能重复validate()返回的内容?它可能正在处理一个“truthy”值。如果valid
不为true,它将不会执行,更可能的情况是,您的函数没有返回您所期望的结果。是否调试了代码或preventDefault()上有断点?我不敢相信第一个代码块没有到达preventDefault(),第二个代码块到达了它,所以什么是validate
函数?什么是validate()
返回的可能重复?它可能正在处理一个“truthy”值。如果valid
不为true,它将不会执行,更可能的情况是,您的函数没有返回您所期望的结果。是否调试了代码或preventDefault()上有断点?我不敢相信第一个代码块没有到达preventDefault(),第二个代码块到达了它您需要调用validate()
?在使用此方法检查表单之前,是否需要对表单调用if(carInfo.valid()){
?validate()
。From:)好的,只是确保:-),这个问题与jQuery验证插件无关。我添加了使用jQuery验证的建议:)是否需要调用validate()
?在使用此方法检查表单之前,是否需要对表单调用if(carInfo.valid()){
?validate()
。From:)好的,只是确保:-),这个问题与jQuery验证插件无关。我添加了使用jQuery验证的建议:)
$('.btn-back').off('click').on('click', function (event) {
carInfo.validate();
if (carInfo.valid()) {
event.preventDefault();
}
});