Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 如何读取具有循环(for)的对象?_Javascript_Jquery - Fatal编程技术网

Javascript 如何读取具有循环(for)的对象?

Javascript 如何读取具有循环(for)的对象?,javascript,jquery,Javascript,Jquery,嗯,我一直在寻找如何用一个循环(for)检查所有对象的属性,但没有找到太多 我一直在使用JS和jquery进行注册表表单验证,我为每个字段添加了一个带有属性(false或true)的对象,只是为了知道字段是否填写不正确。我想检查所有属性以查找false,如果有,请禁用按钮。我试着这样读这个物体: for(var p in flags){ // flags = object if(p == false){ flagStatus = false

嗯,我一直在寻找如何用一个循环(for)检查所有对象的属性,但没有找到太多

我一直在使用JS和jquery进行注册表表单验证,我为每个字段添加了一个带有属性(
false
true
)的对象,只是为了知道字段是否填写不正确。我想检查所有属性以查找
false
,如果有,请禁用按钮。我试着这样读这个物体:

for(var p in flags){ // flags = object
            if(p == false){
                flagStatus = false;
            }
        }
        if(flagStatus )
            $("#subReg").attr("disabled", false);   
        else
            $("#subReg").attr("disabled", true);
我不确定我错过了什么。任何帮助都会很好的,泰

编辑:


您需要获取/比较值,而不是键。试试这个:

var flags = {key1: true, key2: false, key3: true};
var flagStatus = true;
for (var p in flags){
    if (flags[p] === false) {
        flagStatus = false;
        break;
    }
}
if (flagStatus)
    $("#subReg").attr("disabled", false);   
else
    $("#subReg").attr("disabled", true);
循环时,
p
指的是对象中的键,而
标志[p]
指的是

在上面的示例中,遇到的第一个
p
是“key1”,而
flags[p]
true
。接下来,
p
是“key2”,而
flags[p]
false
——因此如果
语句通过,
flagStatus
被设置为
false
,循环停止

此外,您还可以将末尾(循环之后)的代码组合为:


所以你不需要if/else:)

你能展示一下
标志的样子吗?您的循环看起来不错,但
p
指的是键。您的意思是
if(flags[p]==false){
?这将获得值。此外,您可能希望在
if
语句中添加
break;
,以便在某些内容匹配时立即停止循环。乍一看应该有效,您会得到什么错误?请尝试
$(“#subc”).prop(“禁用”,false);
@Nomad101否,设置
禁用的
属性,您要使用
.prop()
。如果您要设置样式,您应该使用
.css()
非常抱歉现在编辑错误。这是一个foreach循环?为什么需要使用索引器?或者我对javascript中foreach循环的理解有误?很好,打电话给我的朋友,是我的问题,我得到的是钥匙而不是阀门。thx@Nomad101这不是foreach[即,值的迭代器]嗯,我明白了,很有趣,好吧,你每天都会学到一些新东西。
var flags = {key1: true, key2: false, key3: true};
var flagStatus = true;
for (var p in flags){
    if (flags[p] === false) {
        flagStatus = false;
        break;
    }
}
if (flagStatus)
    $("#subReg").attr("disabled", false);   
else
    $("#subReg").attr("disabled", true);
$("#subReg").attr("disabled", !flagStatus);