【问题标题】:Jquery dependent drop down boxes populate- howJquery 相关的下拉框填充 - 如何
【发布时间】:2014-12-04 12:16:08
【问题描述】:

我有相关的下拉框,如下面的场景所示。谁能建议如何使用 JQuery/Javascript 实现结果?

场景:

HH1:
    <select name="drop1">
      <option value="0">
      <option value="2">
      <option value="3">
      ......
      <option value="23">
    </select>

HH2:
    <select name="drop1">
      <option value="0">
      <option value="2">
      <option value="3">
      ......
      <option value="23">
    </select>

编辑:抱歉,我忘了提到选项项是通过 javascript(for 循环)填充的。我只需要知道如何根据 HH1 选择的值使 HH2 动态化。

如果用户在选项 HH1(小时)中选择 3,我想在 HH2 中显示仅 3-0(其中 0 是 24 小时)选择选项。我不想看到1-2。

基本上,HH2 依赖于 HH1 中的选定值——这在 JavaScript 中可能吗?如果可能的话,你能告诉我怎么做吗?

【问题讨论】:

  • 依赖HH1 &gt; HH2 是什么?
  • sorry depdency is HH2 Options >= SELECTED value in HH1.
  • 错字:第二个select的名字大概是drop2?

标签: jquery


【解决方案1】:
var drop2 = $("select[name=drop2] option"); // the collection of initial options
$("select[name=drop1]").change(function(){
    var drop1selected = parseInt(this.value); //get drop1 's selected value
    $("select[name=drop2]")
                     .html(drop2) //reset dropdown list
                     .find('option').filter(function(){
                        return parseInt(this.value) < drop1selected; //get all option with value < drop1's selected value
                      }).remove();  // remove
});

http://jsfiddle.net/HTEkw/

【讨论】:

  • @theSuperTramp,谢谢。几乎,我为这一行得到了 NAN: var drop1selected = parseInt($(this).find(":selected"));警报(drop1selected);
  • 谢谢兄弟..祝你有美好的一天..:-)
  • @theSuperTramp,jsfiddle.net/HTEkw 是什么。我在其他几个线程(主要是jquery)上见过几次。它是我可以用来创建 jquery 或您的演示网站的工具吗?
  • 你可以用jquery代码编写,通过jsfiddle让别人看到你的代码
  • 嘿@theSupertramp,这个选择不起作用的任何原因:$("select[name=test]").html(drop2).find('option').filter(function(){ return (parseInt(this.value) == drop1selected); }).Select();.基本上我希望选择该字段。
【解决方案2】:

简短的回答是,在 JavaScript/Jquery 中是可能的。

您可以这样做,在全新的 HTML5 data-* 属性中定义您的依赖项:-)

像这样的HTML:

HH1:
<select name="drop1">
    <option value="0" data-shown="0,2">00</option>
  <option value="2" data-shown="2,3">02</option>
  <option value="3" data-shown="3,23">03</option>
  <option value="23" data-shown="23,0">23</option>
</select>

HH2:
<select name="drop2">
  <option value="0">00</option>
  <option value="2">02</option>
  <option value="3">03</option>
  <option value="23">23</option>
</select>

还有像这样的 Javascript(JQuery):

$('select[name="drop1"]').change(function () {
var ar = $('select[name="drop1"] option:selected').attr('data-shown').split(',');
$('select[name="drop2"] option').each(function(){
    $(this).toggle(false);
    for(var i = 0; i <= ar.length; i++){
        if($(this).attr('value') == ar[i]){
        $(this).toggle(true);
        }
    }
});}).trigger('change');

这应该在你的下拉列表中做你想做的事情。

有了你在评论中添加的条件,这会容易一些:

$('select[name="drop1"]').change(function () {
    var number = parseInt($('option:selected', this).attr('value'));
    $('select[name="drop2"] option').each(function(){
            $(this).toggle(parseInt($(this).attr('value')) >= number);
        });
}).trigger('change');

【讨论】:

  • 感谢@Guidhouse,依赖项是 HH2 选项 >= HH1 中的 SELECTED 值,例如如果选择 2,则仅显示 2 或更大。
  • 谢谢@Guidhouse。答案也很好。
【解决方案3】:

/这是 JavaScript 代码/

function fndroplist(listindex) {
        $("#ddlCity").options.length("");
        switch (listindex) {
            case "Karnataka":
                $("#ddlCity").options[0] = new Option("--select--", "");
                $("#ddlCity").options[1] = new Option("Dharawad", "Dharawad");
                $("#ddlCity").options[2] = new Option("Haveri", "Haveri");
                $("#ddlCity").options[3] = new Option("Belgum", "Belgum");
                $("#ddlCity").options[4] = new Option("Bijapur", "Bijapur");
                break;

            case "Tamilnadu":
                $("#ddlCity").options[0] = new Option("--select--", "");
                $("#ddlCity").options[1] = new Option("Chennai", "Chennai");
                $("#ddlCity").options[2] = new Option("Vijayada", "Vijayada");
                break;
        }
    }
    </script>



<body>
        <div>
            <p>
                <label id="lblCt">
                    City:</label>
                <select id="ddlCity" style="width: 142px;">
                    <option>--Select--</option>
                </select>
                <span class="red">*</span>
                <label id="lblCity" style="color:Red; font-size:small;">
                </label>
            </p>
        </div>
        <div>
            <p>
                <label>
                    Country:</label>
                <input type="text" id="txtCountry" />
                <label id="lblCountry" style="color:Red; font-size:small;">
                </label>
            </p>
        </div>
</body>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2012-08-01
    • 2018-06-03
    相关资源
    最近更新 更多