Javascript jQuery切换更改文本输入值
我有这个HMTL结构Javascript jQuery切换更改文本输入值,javascript,jquery,html,Javascript,Jquery,Html,我有这个HMTL结构 .list、.list.ul{ 列表样式类型:无; } 有几件事需要改变 首先,HTML中的标识属性与您在jQuery中使用的不匹配:您需要使用$(“.radioSettings[type=radio]”选择切换输入 您还需要确保单选按钮的名称属性具有相同的值,以便不能同时选择它们。在下面链接的回答代码中,我使用了name=“color” 最后,当您循环遍历属性时,您需要更正正在查找的元素的id,因为在迭代i时,您的属性名是colors\u
.list、.list.ul{
列表样式类型:无;
}
-
-
-
-
-
-
有几件事需要改变
首先,HTML中的标识属性与您在jQuery中使用的不匹配:您需要使用$(“.radioSettings[type=radio]”选择切换输入
您还需要确保单选按钮的名称属性具有相同的值,以便不能同时选择它们。在下面链接的回答代码中,我使用了name=“color”
最后,当您循环遍历属性时,您需要更正正在查找的元素的id,因为在迭代i
时,您的属性名是colors\u body
,因此您尝试选择$(“#colors\u colors\u body”)
var着色器={
“白色”:{
'colors_body':'FFFFFF',
“颜色包装器”:“E6E6”,
“颜色\页脚”:“中交”
},
“黑暗”:{
'colors_body':'EBEEF2',
“颜色包装器”:“B2B5B8”,
“颜色\页脚”:“1A2758”
},
};
$('.radioSettings[type=“radio”]')。更改(函数(){
var val=$(this.val();
if(着色程序[val]){
用于(着色程序中的var i[val]){
if($('#'+i).length){
$('#'+i).find('input').val(colorizer[val][i]);
}
}
}
});代码>
.list、.list.ul{
列表样式类型:无;
}
-
-
-
-
-
-
有几件事需要改变
首先,HTML中的标识属性与您在jQuery中使用的不匹配:您需要使用$(“.radioSettings[type=radio]”选择切换输入
您还需要确保单选按钮的名称属性具有相同的值,以便不能同时选择它们。在下面链接的回答代码中,我使用了name=“color”
最后,当您循环遍历属性时,您需要更正正在查找的元素的id,因为在迭代i
时,您的属性名是colors\u body
,因此您尝试选择$(“#colors\u colors\u body”)
var着色器={
“白色”:{
'colors_body':'FFFFFF',
“颜色包装器”:“E6E6”,
“颜色\页脚”:“中交”
},
“黑暗”:{
'colors_body':'EBEEF2',
“颜色包装器”:“B2B5B8”,
“颜色\页脚”:“1A2758”
},
};
$('.radioSettings[type=“radio”]')。更改(函数(){
var val=$(this.val();
if(着色程序[val]){
用于(着色程序中的var i[val]){
if($('#'+i).length){
$('#'+i).find('input').val(colorizer[val][i]);
}
}
}
});代码>
.list、.list.ul{
列表样式类型:无;
}
-
-
-
-
-
-
简化:
var着色器={
“白色”:{
'colors_body':'FFFFFF',
“颜色包装器”:“E6E6”,
“颜色\页脚”:“中交”
},
“黑暗”:{
'colors_body':'EBEEF2',
“颜色包装器”:“B2B5B8”,
“颜色\页脚”:“1A2758”
},
};
$('[type=“radio”]')。更改(函数(){
var val=$(this.val();
if(着色程序[val]){
用于(着色程序中的var i[val]){
$('#'+i).val(着色器[val][i]);
}
}
});代码>
白色
黑暗的
简化:
var着色器={
“白色”:{
'colors_body':'FFFFFF',
“颜色包装器”:“E6E6”,
“颜色\页脚”:“中交”
},
“黑暗”:{
'colors_body':'EBEEF2',
“颜色包装器”:“B2B5B8”,
“颜色\页脚”:“1A2758”
},
};
$('[type=“radio”]')。更改(函数(){
var val=$(this.val();
if(着色程序[val]){
用于(着色程序中的var i[val]){
$('#'+i).val(着色器[val][i]);
}
}
});代码>
白色
黑暗的
我想出的解决方案是:
函数中的$(this).val
获取无线电输入的当前值,然后根据该值从对象获取数据
var着色器={
“白色”:{
'colors_body':'FFFFFF',
“颜色包装器”:“E6E6”,
“颜色\页脚”:“中交”
},
“黑暗”:{
'colors_body':'EBEEF2',
“颜色包装器”:“B2B5B8”,
“颜色\页脚”:“1A2758”
},
};
$('input:radio')。在('click',function()上{
var currentValue=$(this.val();
$('#colors_body input').val(colorizer[currentValue].colors_body);
$('#colors_wrapper input').val(colorizer[currentValue].colors_wrapper);
$('#colors_footer input').val(colorizer[currentValue].colors_footer);
});代码>
.list,
.list ul{
列表样式类型:无;
}
-
-
-
-
-
-
我提出的解决方案
var colorizer = {}
colorizer['white'] = {
'colors_body': 'FFFFFF',
'colors_wrapper': 'E6E6E6',
'colors_footer': 'CCCCCC'
}
colorizer['dark'] = {
'colors_body': 'EBEEF2',
'colors_wrapper': 'B2B5B8',
'colors_footer': '1A2758'
}
$('input[name="colorizer"]').change(function() {
var color = $(this).val();
$.each(colorizer[color], function(i,v) {
$('#'+i+' input').val(v);
});
});