如何在javascript中存储多个相关值?

如何在javascript中存储多个相关值?,javascript,Javascript,我在一个页面中有一组复选框,每个复选框都与一个文本框相关联 我需要做的是,如果复选框未选中,则禁用文本框,并将默认值放入其中(每个文本框都有不同的默认值) 现在我已经编写了一个函数,它接受checkboxId、textboxId和默认值,即复选框的onClick 有没有一种方法可以在javascript中静态存储这些信息(如checkBoxId、textBoxId、defaultValue),这样我的函数就不需要任何参数,可以在加载页面时调用?这是我以前做过的: <input type="

我在一个页面中有一组复选框,每个复选框都与一个文本框相关联

我需要做的是,如果复选框未选中,则禁用文本框,并将默认值放入其中(每个文本框都有不同的默认值)

现在我已经编写了一个函数,它接受checkboxId、textboxId和默认值,即复选框的onClick


有没有一种方法可以在javascript中静态存储这些信息(如checkBoxId、textBoxId、defaultValue),这样我的函数就不需要任何参数,可以在加载页面时调用?

这是我以前做过的:

<input type="checkbox" id="sample">
<input data-requires="sample" data-default="Default">

function applyControls(){
    $("input[data-requires]").each(function(){
        var target = $(this);
        $("#" + target.data("requires")).click(function(){
            if(this.checked){
                target.prop("disabled", false);
            }else{
                target.prop("disabled", true).val(target.data("default"));
            }
        });
    });
}
applyControls();

函数applyControls(){
$(“输入[数据要求]”)。每个(函数(){
var目标=$(此);
$(“#”+target.data(“requires”)。单击(函数(){
如果(选中此项){
道具(“禁用”,错误);
}否则{
target.prop(“禁用”,true).val(target.data(“默认”));
}
});
});
}
applyControls();
注意:这段代码是用jQuery编写的。通过用本机方法替换jQuery方法,可以轻松地将其转换为本机代码

演示:

现在,通过使用
data-*
属性,您不必创建任何映射或对象来存储这些关系(对于单个文本框,您甚至不需要
id
s!),您不必每次添加连接时都修改“映射”。事实上,这是在HTML5中实现它的首选方法


1

使用
数据存储它们-
将是最好的方法。在js中,您可以使用
Object()
存储关联数据