Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将true/false设置为if/or语句不起作用_Javascript_If Statement - Fatal编程技术网

Javascript 将true/false设置为if/or语句不起作用

Javascript 将true/false设置为if/or语句不起作用,javascript,if-statement,Javascript,If Statement,嘿,我有以下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) { //

嘿,我有以下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
我从第二次按下按钮得到的值是:

false name
messagebox saying true

当您第二次单击时,您已经有了
img
标记,因此您的变量不会重置
canSubmit=false

将变量赋值移到创建错误代码块之外,如下所示:

 if (($('#cf_name_txt').val() == "") || ($('#cf_name_txt').val().substr(0, 1) == "*") || ($('#cf_name_txt').length == 1)) {

    canSubmit = false;
    ...

当您第二次单击时,您已经有了
img
标记,因此您的变量不会重置
canSubmit=false

将变量赋值移到创建错误代码块之外,如下所示:

 if (($('#cf_name_txt').val() == "") || ($('#cf_name_txt').val().substr(0, 1) == "*") || ($('#cf_name_txt').length == 1)) {

    canSubmit = false;
    ...

您可以发布JSFIDLE吗?第二级if语句的目的是什么?难道不能将其添加到第一级吗?您可以发布一个JSFIDLE吗?第二级if语句的目的是什么?难道这不能添加到第一个吗?啊,我知道这会很简单。谢谢你!啊,我知道这会很简单。谢谢你!