使用Jquery在组合框中动态添加选项

时间:2011-07-13 12:48:10

标签: javascript jquery

当我使用jQuery向DropDownList添加一个新选项时,每当我使用该下拉列表时,它都会重复这些值。

举个例子:

    var myOptions = { val1 : 'Suganthar', val2 : 'Suganthar2'};

    $.each(myOptions, function(val, text) {
       $('#mySelect').append(new Option(text, val));
    });

Suganthar和Suganthar2是重复的价值观。

有谁能给我一些想法来纠正这个问题

3 个答案:

答案 0 :(得分:6)

实际上它应该可以工作,但你可以通过使用数组来尝试替代方法:

var myOptions = [{ text: 'Suganthar', value: 1}, {text : 'Suganthar2', value: 2}];

$.each(myOptions, function(i, el) 
{ 
   $('#mySelect').append( new Option(el.text,el.value) );
});

答案 1 :(得分:4)

您的代码适合我,请参阅:

http://jsfiddle.net/DvWct/

也许你错过了$(document).ready部分,代码运行时,select元素不存在?

答案 2 :(得分:1)

感谢您的回答。我的情况不同了。好像是

  1. 有两个按钮,即查看语句和撤消语句。在这两种情况下,我使用相同的对话框,它包含特定的组合框(Suganthar和suganthar 2是记录)
  2. 首先,当我点击查看语句按钮时,对话框会弹出组合框和那两个记录,然后它可以正常工作直到程序结束。
  3. 其次,当我点击撤消审核按钮时,会弹出相同的对话框,其中包含组合框( suganthar,suganthar2,suganthar,suganthar 2重复值
  4. 在对此进行日志搜索后,我发现并得到了一个想法......

    var myOptions = [{ text: 'Suganthar', value: 1}, {text : 'Suganthar2', value: 2}];
    
    **$('#mySelect').empty();**
    $.each(myOptions, function(i, el) 
    {    $('#mySelect').append( new Option(el.text,el.value) );});
    

    所以每次配对时我们都会空着。

    希望当你遇到同样的问题时它会有所帮助。我非常感谢您在回答问题时的快速反应。再来一次。感谢