我在页面中有一组复选框,每个复选框都与文本框相关联。
如果取消选中该复选框并在其中放入默认值(每个文本框具有不同的默认值),我需要做的是禁用文本框。
现在我编写了一个接受checkboxId,textboxId和默认值的函数,该函数名为onClick of the复选框。
有没有办法在javascript中静态存储这些信息(checkBoxId,textBoxId,defaultValue)(如地图或其他东西),这样我的函数不需要任何参数,可以在页面上调用onLoad?
答案 0 :(得分:2)
这是我之前做的事情:
<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();
注意:此代码是用jQuery编写的。您可以通过使用本机方法替换jQuery方法,轻松将其转换为本机代码。
演示:http://jsfiddle.net/DerekL/VnHAc/
现在,您不必创建任何地图或对象来存储这些关系(对于单个文本框,您甚至不需要id
!)通过使用data-*
属性,您可以每次添加连接时都不必修改“地图”。事实上,这是在HTML5中实现它的首选方式 1 。
1 https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes