Javascript jQuery在选择更改时显示/隐藏div不使用JSON填充的选项

Javascript jQuery在选择更改时显示/隐藏div不使用JSON填充的选项,javascript,jquery,html,css,json,Javascript,Jquery,Html,Css,Json,我有一些添加到web表单的选项,为了稍微清理HTML,我使用一些脚本填充一些选择框的选项。我需要根据所选内容显示/隐藏一些div,并且对于其中一个具有硬编码HTML选项的选项,它可以正常工作。然而,对于我通过脚本和一些JSON填充的另一个下拉列表,它没有显示或隐藏更改时的div。有人知道我做错了什么吗 如果您选择member+1 guest,则一个div将按其应显示。但另一个从不显示另一个div 以下是HTML: <div id="tickets"> <label for

我有一些添加到web表单的选项,为了稍微清理HTML,我使用一些脚本填充一些选择框的选项。我需要根据所选内容显示/隐藏一些div,并且对于其中一个具有硬编码HTML选项的选项,它可以正常工作。然而,对于我通过脚本和一些JSON填充的另一个下拉列表,它没有显示或隐藏更改时的div。有人知道我做错了什么吗

如果您选择member+1 guest,则一个div将按其应显示。但另一个从不显示另一个div

以下是HTML:

<div id="tickets">
  <label for="group1">Number of Tickets: <span class="req">*</span></label>
  <select class="group1_dropdown" id="group1" name="group1">
   <option value="0">-- Please select --</option>
   <option value="1">Member</option>
   <option value="2">Member + 1 Guest</option>
   <option value="3">Member + 2 Guests</option>
   <option value="4">Member + 3 Guests</option>
  </select>
 <label class="visuallyhidden">Year</label>
 <select id="yearSelectionBox2" class="stringInfoSpacing">
  <option value="0" selected="selected">Year</option>
 </select>
</div>
<div id="payMethod">
  <div class="header"> PAYMENT METHOD </div>
   <div id="payOptions">
    <div id="payInfo">
    <div id="pay0" class="paymentinfo">
    <p>PAYMENT INFO OPTION 1</p>
  </div>
    </div>
  </div>
 </div>
<div id="pay222" class="tacos">
  <p>Years Data</p>
 </div>

门票数量:*
--请选择--
成员
会员+1位客人
会员+2位客人
会员+3位客人
年
年
付款方式
付款信息选项1

年份数据

以下是我正在使用的脚本:

 var YearListItems2= "";
for (var i = 0; i < modelYearJsonList2.modelYearTable2.length; i++){
YearListItems2+= "<option value='" + modelYearJsonList2.modelYearTable2[i].modelYearID + "'>" + modelYearJsonList2.modelYearTable2[i].modelYear + "</option>";
  };
    $("#yearSelectionBox2").html(YearListItems2); 
     //The div is not showing/hiding as it should 
     $("#yearSelectionBox2").change(function () {
      var str = "";
      str = parseInt($("select option:selected").val());       
     if(str == 2013)
     $("#pay222").show('slow');
      else
         $("#pay222").hide('fast');
 });
 //This one works as it should
  $("#group1").change(function () {
   var str = "";
  str = parseInt($("select option:selected").val());       
   if(str == 2)
     $("#payMethod").show('slow');
     else
      $("#payMethod").hide('fast');
 });
var YearListItems2=”“;
对于(变量i=0;i
您的选择元素选择器在更改事件处理程序中出错,
引用已更改的选择元素,使用该元素引用该元素,而不是使用其他选择器

$("#yearSelectionBox2").change(function () {
    var str = parseInt($(this).val());
    if (str == 2013) {
        $("#pay222").show('slow');
    } else {
        $("#pay222").hide('fast');
    }
});
您已使用
$(“选择选项:已选”)
获取所选值,该值将始终返回第一个选择元素的值而不是当前元素的值,请改用
$(this).value()


注意:
group1
处理程序中也存在同样的错误,它现在正在工作,因为这是给定页面中的第一个选择,在添加新选择之前,这将失败。

您的选择元素选择器在更改事件处理程序中出错,
引用已更改的select元素。请使用该元素来引用该元素,而不是使用其他选择器

$("#yearSelectionBox2").change(function () {
    var str = parseInt($(this).val());
    if (str == 2013) {
        $("#pay222").show('slow');
    } else {
        $("#pay222").hide('fast');
    }
});
您已使用
$(“选择选项:已选”)
获取所选值,该值将始终返回第一个选择元素的值而不是当前元素的值,请改用
$(this).value()


注意:
group1
处理程序中也存在同样的错误,它现在正在工作,因为这是给定页面中的第一个选择,在添加新选择之前,这将失败。

您的选择元素选择器在更改事件处理程序中出错,
引用已更改的select元素。请使用该元素来引用该元素,而不是使用其他选择器

$("#yearSelectionBox2").change(function () {
    var str = parseInt($(this).val());
    if (str == 2013) {
        $("#pay222").show('slow');
    } else {
        $("#pay222").hide('fast');
    }
});
您已使用
$(“选择选项:已选”)
获取所选值,该值将始终返回第一个选择元素的值而不是当前元素的值,请改用
$(this).value()


注意:
group1
处理程序中也存在同样的错误,它现在正在工作,因为这是给定页面中的第一个选择,在添加新选择之前,这将失败。

您的选择元素选择器在更改事件处理程序中出错,
引用已更改的select元素。请使用该元素来引用该元素,而不是使用其他选择器

$("#yearSelectionBox2").change(function () {
    var str = parseInt($(this).val());
    if (str == 2013) {
        $("#pay222").show('slow');
    } else {
        $("#pay222").hide('fast');
    }
});
您已使用
$(“选择选项:已选”)
获取所选值,该值将始终返回第一个选择元素的值而不是当前元素的值,请改用
$(this).value()


注意:
group1
处理程序中也存在同样的错误,它现在正在工作,因为这是给定页面中的第一个选择,在添加新选择之前,这将失败。

您的选择元素选择器错误。您应该使用
$(this)
选择元素id
(因为id是唯一的)


您的选择元素选择器错误。您应该使用
$(this)
选择元素id
(因为id是唯一的)


您的选择元素选择器错误。您应该使用
$(this)
选择元素id
(因为id是唯一的)


您的选择元素选择器错误。您应该使用
$(this)
选择元素id
(因为id是唯一的)


在代码中只需更改即可

这一行:

str = parseInt($("select option:selected").val());
致:


在代码中只需更改

这一行:

str = parseInt($("select option:selected").val());
致:


在代码中只需更改

这一行:

str = parseInt($("select option:selected").val());
致:


在代码中只需更改

这一行:

str = parseInt($("select option:selected").val());
致:


我现在看到了。谢谢你,阿伦,我现在看到了。谢谢你,阿伦,我现在看到了。谢谢你,阿伦,我现在看到了。谢谢你,阿伦。