【问题标题】:jQuery populate Select list based on text input's valuejQuery 根据文本输入的值填充选择列表
【发布时间】:2012-10-28 05:08:25
【问题描述】:


我正在尝试编写允许根据文本框的输入值填充选择列表的代码。

例如:
如果用户在文本框中输入牛奶,选择列表将包含"full fat", "Skimmed", "1% Milk"

我一直在网上,找不到有关如何执行此操作的任何信息。我已经设法根据使用 jquery 的前一个选择来自动填充一个选择列表。但是,我找不到使用文本框时的解决方案。
感谢您查看我的问题!

【问题讨论】:

    标签: javascript jquery html selection


    【解决方案1】:

    创建一个包含选项数组的对象:

    selectOptions = {
       milk: ["full fat", "Skimmed", "1% Milk"]
    }
    

    基于此,当<textarea>onchange 事件触发时,您可以将<option> 标签附加到<select>

    $('textarea').change(function() {
       if(selectOptions[$(this).val()]) { // does the selectOptions object have an entry for the value of the textarea?
           $.each(selectOptions[$(this).val()], function() { // for each array item do
               $('select').append('<option>' + this + '</option>'); // append an option tag for the array item
           });
       }
    });
    

    【讨论】:

    • 感谢您的帮助。我试过了,但它似乎不起作用。认为我在某个地方出错了。如果我在文本框中输入牛奶,选择列表会填充“全脂”、“脱脂”、“1% 牛奶”吗?
    • 如果您取消选择文本框,则会触发 onchange 事件。您也可以使用 onkeyup,它会在每次按键时触发。
    • 对不起..我没有测试我写的代码;)我更新了它,它现在可以工作了..在这里寻找一个测试用例:jsfiddle.net/xeVBm/4
    • 好的,我试过了,但仍然无法正常工作。非常感谢您抽出宝贵的时间,但您能看看我做了什么并告诉我哪里出了问题吗? jsfiddle.net/echoes13/C83DB
    • 您定义的对象有语法错误。使用 javascript 控制台!! (如果你使用 firefox,我推荐 firebug)
    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多