Show/Hide div 基于所选单选按钮的组合
Show/Hide div based on combination of selected radio buttons
所以我正在一个网站上工作,不知道从哪里开始 jquery。
有 2 个表单,一个有 2 个单选按钮,另一个有 5 个单选按钮。可以显示 10 种不同的衬衫和裤子组合,但一次只能显示一种,具体取决于他们选择的单选按钮组合。
假设衬衫 1 是红色的,衬衫 2 是蓝色的。裤子1是红色的,裤子2是蓝色的,裤子3是绿色的,依此类推。
所以img11.jpg就是红衬衫红裤子。
Img12.jpg准备红衫蓝裤
img21.jpg是蓝衫红裤
Img23.jpg是蓝衫绿裤。
(我附上了一张图表来更好地展示这一点)!
等等等等。任何人有任何好的链接或愿意帮助实现这一目标吗?
我在 javascript 或 jQuery 方面没有太多(如果有的话)经验,但这是我的 HTML:
<form>
<input type="radio" id="shirt_Red" name="shirt" value="Red" />
<input type="radio" id="shirt_Blue" name="shirt" value="Blue" />
</form
<form>
<input type="radio" id="pants_Red" name="pants" value="Red" />
<input type="radio" id="pants_Blue" name="pants" value="Blue" />
<input type="radio" id="pants_Green" name="pants" value="Green" />
<input type="radio" id="pants_Purple" name="pants" value="Purple" />
<input type="radio" id="pants_Pink" name="pants" value="Pink" />
</form>
我什至不确定我是否会使用图像标签或 div 的背景来执行此操作,具体取决于 jQuery 或 javascript 的效果.
谢谢!
首先,您需要处理页面中的每个无线电更改事件
$('input[type="radio"]').on("change",function(ev){
...
});
只要用户更改收音机选择,就会调用此函数。
接下来您需要考虑的是如何获取选择了哪些选项,您可以在 jQuery 选择器
中使用 ':checked'
var $shirt = $('input[name="shirt"]:checked');
var $pants = $('input[name="pants"]:checked');
由于您的图像文件有编号顺序,我建议您将无线电值放在这些数字而不是颜色字符串中,例如:
<input type="radio" id="shirt_Red" name="shirt" value="1" />
<input type="radio" id="shirt_Blue" name="shirt" value="2" />
<input type="radio" id="pants_Red" name="pants" value="1" />
...
然后在事件函数中你可以通过using.val():
轻松构造图像文件名
var image_path = 'img'+$shirt.val()+$pants.val()+'.jpg';
最后,使用.attr()设置图片文件
$("#id-of-image-tag").attr("src",image_path);
你可以在这里看到一个组合的例子http://jsfiddle.net/4bkngakw/
不过我做了一些更改,例如使用 div 来显示组合文件名,我还为衬衫和裤子设置了默认值以防止出现未定义错误。
您可以创建一个 函数 来映射和过滤 checked 单选按钮并呈现与其 index
相关的图像喜欢 :
function renderImg(selectors) {
var img = selectors.filter(function () {
return $(this).is(":checked")
}).map(function () {
return $(this).index() + 1
}).get();
$("#result").html('<img src="images/image' + String(img[0]) + String(img[1]) + '.jpg" alt="" />')
}
然后 运行 在页面加载时 函数 并且每次单选按钮 checked
就像:
jQuery(document).ready(function ($) {
var selectors = $("input[name=shirt], input[name=pants]");
renderImg(selectors);
selectors.on("change", function (e) {
renderImg(selectors)
})
}); // ready
注意每个表单的第一个radio按钮是checked
所以我正在一个网站上工作,不知道从哪里开始 jquery。
有 2 个表单,一个有 2 个单选按钮,另一个有 5 个单选按钮。可以显示 10 种不同的衬衫和裤子组合,但一次只能显示一种,具体取决于他们选择的单选按钮组合。
假设衬衫 1 是红色的,衬衫 2 是蓝色的。裤子1是红色的,裤子2是蓝色的,裤子3是绿色的,依此类推。
所以img11.jpg就是红衬衫红裤子。
Img12.jpg准备红衫蓝裤
img21.jpg是蓝衫红裤
Img23.jpg是蓝衫绿裤。
(我附上了一张图表来更好地展示这一点)!
等等等等。任何人有任何好的链接或愿意帮助实现这一目标吗?
我在 javascript 或 jQuery 方面没有太多(如果有的话)经验,但这是我的 HTML:
<form>
<input type="radio" id="shirt_Red" name="shirt" value="Red" />
<input type="radio" id="shirt_Blue" name="shirt" value="Blue" />
</form
<form>
<input type="radio" id="pants_Red" name="pants" value="Red" />
<input type="radio" id="pants_Blue" name="pants" value="Blue" />
<input type="radio" id="pants_Green" name="pants" value="Green" />
<input type="radio" id="pants_Purple" name="pants" value="Purple" />
<input type="radio" id="pants_Pink" name="pants" value="Pink" />
</form>
我什至不确定我是否会使用图像标签或 div 的背景来执行此操作,具体取决于 jQuery 或 javascript 的效果. 谢谢!
首先,您需要处理页面中的每个无线电更改事件
$('input[type="radio"]').on("change",function(ev){
...
});
只要用户更改收音机选择,就会调用此函数。
接下来您需要考虑的是如何获取选择了哪些选项,您可以在 jQuery 选择器
中使用 ':checked'var $shirt = $('input[name="shirt"]:checked');
var $pants = $('input[name="pants"]:checked');
由于您的图像文件有编号顺序,我建议您将无线电值放在这些数字而不是颜色字符串中,例如:
<input type="radio" id="shirt_Red" name="shirt" value="1" />
<input type="radio" id="shirt_Blue" name="shirt" value="2" />
<input type="radio" id="pants_Red" name="pants" value="1" />
...
然后在事件函数中你可以通过using.val():
轻松构造图像文件名var image_path = 'img'+$shirt.val()+$pants.val()+'.jpg';
最后,使用.attr()设置图片文件
$("#id-of-image-tag").attr("src",image_path);
你可以在这里看到一个组合的例子http://jsfiddle.net/4bkngakw/
不过我做了一些更改,例如使用 div 来显示组合文件名,我还为衬衫和裤子设置了默认值以防止出现未定义错误。
您可以创建一个 函数 来映射和过滤 checked 单选按钮并呈现与其 index
相关的图像喜欢 :
function renderImg(selectors) {
var img = selectors.filter(function () {
return $(this).is(":checked")
}).map(function () {
return $(this).index() + 1
}).get();
$("#result").html('<img src="images/image' + String(img[0]) + String(img[1]) + '.jpg" alt="" />')
}
然后 运行 在页面加载时 函数 并且每次单选按钮 checked
就像:
jQuery(document).ready(function ($) {
var selectors = $("input[name=shirt], input[name=pants]");
renderImg(selectors);
selectors.on("change", function (e) {
renderImg(selectors)
})
}); // ready
注意每个表单的第一个radio按钮是checked