javascript - 嗨,我想创建一个表单,当有人选择一个选项时它会显示产品图片
问题描述
我正在努力解决我想创建一个表单并显示客户选择的产品图像的问题。我无法让它工作,所以这就是我在这里问的原因。
目前我有以下代码:
<select onchange="yesnoCheck(this);">
<option value=“luxebonbon5”>Luxe bonbons 5 stuks</option>
<option value=“luxebonbon10”>Luxe bonbons 10 stuks</option>
<option value=“luxebonbon15”>Luxe bonbons 15 stuks</option>
<option value=“bonbonmetlogo6”>Bonbons met logo 6 stuks</option>
<option value=“bonbonmetlogo12”>Bonbons met logo 12 stuks</option>
<option value=“bonbonmetlogo18”>Bonbons met logo 18 stuks</option>
<option value=“klassiekbonbon16”>Klassieke bonbons 16 stuks</option>
<option value=“klassiekbonbon23”>Klassieke bonbons 23 stuks</option>
<option value=“paasei15”>Luxe chocolade paasei 15cm</option>
<option value=“paasei20”>Luxe chocolade paasei 20cm</option>
<option value=“paashaas50”>XL chocolade paashaas 50cm</option>
<option value=“paascadeau”>Paas cadeau pakket</option>
<option value=“chocoletter”Chocoladeletter (standaard)</option>
<option value=“chocolettersmarties”>Chocoladeletter (smarties)</option>
<option value=“chocoletterhazelnoot”>Chocoladeletter (hazelnoot)</option>
<option value=“chocoletterkaramel”>Chocoladeletter (karamel zeezout)</option>
<option value=“chocoletterkoffie”>Chocoladeletter (koffiebonen)</option>
<option value=“chocoletterruby”>Ruby Chocoladeletter</option>
<option value=“chocopepernoot”>Chocolade pepernoten</option>
<div id="ifYes" style="display: none;">
<label for="car">Dit product?</label> <input type="text" id="car" name="car" /><img src=“(image)”><br />
<script>
function yesnoCheck(that) {
if (that.value = “luxebonbon5”) {
alert("check");
document.getElementById("ifYes").style.display = "block";
} else {
document.getElementById("ifYes").style.display = "none";
}
}
</script>
解决方案
我可以看到您的代码有两个问题:
1) if (that.value = “luxebonbon5”)
: 要在 JS 中比较两个字符串,请使用==
,而不是=
!
2)您不需要that
在处理程序中传递参数。在您的事件处理程序中,this
将始终引用触发事件的元素,在本例中为select
元素。
现在,您的问题的一个可能解决方案是最初有一个div,并在用户选择一个选项时img
播放其属性。src
假设每个选项value
都等于相应图像的名称(只是为了在这里更简单):
function yesnoCheck() {
var image = document.getElementById("your_image_id");
image.src = this.value;
}