1

出于某种原因,某些选择有效,但大多数无效。我无法弄清楚我做错了什么,也许你可以帮忙?这是关于 codepen 的现场演示:http ://codepen.io/AlexBezuska/pen/dHmge 我的 jQuery:

$('#ddlOffice option').hide();
    $('#ddlBusiness').change(function(){
      var selectedBusiness = $( "#ddlBusiness option:selected").val();
      selectedBusiness = parseFloat(selectedBusiness);
      $('#ddlOffice option').hide();
      $('#ddlOffice option[value="'+selectedBusiness+'"]').show();
      $('#txtBusiness').val($( "#ddlBusiness option:selected").text());
    });

     $('#ddlOffice').change(function(){
      $('#txtOffice').val($( "#ddlOffice option:selected").text());
    });

加分点:我想在没有 jQuery 的情况下做到这一点,如果有人有关于在原始 javascript 中进行显示和隐藏的简单方法的提示,或者想要在没有 jQuery 的情况下进行分叉,那就太棒了,

谢谢!

4

2 回答 2

1

我想出了一个更好的方法:

var options = $("#ddlOffice").html();
$("#ddlBusiness").change(function(e) {
    var selectedValue = $("#ddlBusiness :selected").val();
    $("#ddlOffice").html(options);
    $('#ddlOffice :not([value="'+selectedValue+'"])').remove();
});

现在使用 CodePen:http ://codepen.io/AlexBezuska/pen/dHmge

于 2013-10-05T13:57:42.603 回答
0

我重新编写了您的 jQuery 代码,现在它似乎对我有用(小提琴):

$(function() {
    $('#ddlOffice option').hide();
    $('#ddlBusiness').change(function(){
        var selectedBusiness = parseFloat($("#ddlBusiness").val());
        $('#ddlOffice option').hide();
        $('#ddlOffice option[value="' + selectedBusiness + '"]').show();
        $('#txtBusiness').val($("#ddlBusiness option:selected").text());
    });
    $('#ddlOffice').change(function(){
        $('#txtOffice').val($(this).find("option:selected").text());
    });
});

请考虑:

  1. 如果您将 JavaScript 放在 HTML 之前,请记住在 jQuery中使用document.ready或。$(function(){ })
  2. 您不能拥有与选择时具有相同值的#ddlOffice选项。我的意思是使用将返回相同值的选项的目的是什么?!
  3. 你还没有关闭你option的第二个 s select
于 2013-10-07T19:13:52.013 回答