Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 在输入字段中循环时设置标志_Javascript_Jquery - Fatal编程技术网

Javascript 在输入字段中循环时设置标志

Javascript 在输入字段中循环时设置标志,javascript,jquery,Javascript,Jquery,我有一系列多个文本字段和一个文本区域。我在文本字段和文本区域中循环,检查是否有值。如果没有值,我将设置一个标志,显示pass=false。否则,我将设置pass=true,如果所有计算结果都为true,我将触发一个自定义事件。问题在于,因为一个输入字段的计算结果为true,所以即使其中两个字段中没有值,它也会将它们全部计算为true。如果我想这样做,那么我该怎么做,以便所有字段都必须填写,但如果其中一个或两个字段已填写,则仍然设置为pass=false?非常感谢您的帮助 JS Fiddle链接:

我有一系列多个文本字段和一个文本区域。我在文本字段和文本区域中循环,检查是否有值。如果没有值,我将设置一个标志,显示pass=false。否则,我将设置pass=true,如果所有计算结果都为true,我将触发一个自定义事件。问题在于,因为一个输入字段的计算结果为true,所以即使其中两个字段中没有值,它也会将它们全部计算为true。如果我想这样做,那么我该怎么做,以便所有字段都必须填写,但如果其中一个或两个字段已填写,则仍然设置为pass=false?非常感谢您的帮助

JS Fiddle链接:

HTML:

改变

进入

并将其初始化为
true

$("#submit").on('click', function() {    
    var pass = true;


(您可能还想先在值上使用。)

如果我读对了这篇文章,
pass
将始终获得循环中最后一项的值。哇,谢谢@Blazemonger您的精彩!我有点困惑为什么一开始这不起作用,我想如果我声明var pass,它会自动假定它是真的?我也不完全确定这到底是怎么回事;再次感谢@这是一个逻辑和比较。true&&true=true。true&&false=false和false&&false=false。另一个技巧是使用数字计数器fail并将其初始化为零。每次测试失败时加1,最后测试“失败”是否为非零。
$(document).ready(function() {       
$("#submit").on('click', function() {    
    var pass;
    $("input,textarea,select").each(function() {
        if($(this).val() === ''){
            pass = false;
            $(this).prev('label').css('color','red');
        } else { 
            pass = true;
            $(this).prev('label').css('color','black');
        }
    });
    console.log(pass);
    if(pass){ alert('trigger custom event') } else { alert('pass failed'); }
});                    
});
pass = true;
pass = pass && true;
$("#submit").on('click', function() {    
    var pass = true;