嘿,我有以下js代码来验证文本框:
function submitContactUs() {
var canSubmit = true;
if (($('#cf_name_txt').val() == "") || ($('#cf_name_txt').val().substr(0, 1) == "*") || ($('#cf_name_txt').length == 1)) {
if (!$('#cf_name_txt').next('img').length) { //image not there yet
$('#cf_name_txt').after(theErrorIcon + " id=\"errIcon_cfname\" />");
$('#errIcon_cfname').vibrate(conf);
canSubmit = false;
console.log('false name');
}
} else {
$('#errIcon_cfname').remove();
console.log('true name');
}
if (canSubmit) {
alert(canSubmit);
//$("#sendDataContactus").click();
}
当我第一次点击按钮触发该功能时,我得到了正确的 false ,但是一旦我再次按下按钮(没有改变任何东西),由于某种原因,它会返回为 true ???有没有人看到js有什么问题导致它这样做?
我从按下第一个按钮获得的值是:
false name
我从按下第二个按钮获得的值是:
messagebox saying true
答案 0 :(得分:2)
当您第二次点击时,您已经拥有img
代码,因此您的变量不会重置canSubmit = false;
将变量赋值移到创建错误代码块之外,如下所示:
if (($('#cf_name_txt').val() == "") || ($('#cf_name_txt').val().substr(0, 1) == "*") || ($('#cf_name_txt').length == 1)) {
canSubmit = false;
...