设置选择框值和文本

时间:2014-08-25 11:48:34

标签: jquery

我知道这是一个非常愚蠢的问题,但我被困住了。 我有选择框

 <select class="valid sbi" name="FORM[rd]" id="rd" data-error="">
         <option value="1">11</option>
 </select>

和数据(文本和值)

...
     $.ajax({
                url: '123.php',
                type: 'POST',
                data: {post_data:post_data},
                dataType: 'JSON',
                success: function(data) {


                }

我想在选择框

中为每个选项设置值和文本
 <select class="valid sbi" name="FORM[rd]" id="rd" data-error="">
             <option value="1">11</option>
             <option value="2">22</option>
             <option value="3">33</option>
                ...
     </select>

请给我一些建议

谢谢和问候

2 个答案:

答案 0 :(得分:0)

我猜您通过post ajax调用获取选项相关数据。所以就像

$.ajax({
            url: '123.php',
            type: 'POST',
            data: {post_data:post_data},
            dataType: 'JSON',
            success: function(data) {

                //if data send is like [{value:'k2',text:kk1},{value:'k1',text:kk2},{value:'k3',text:kk3}]

                var html = "";
                for(x in data) {
                      html += "<option '"+data[x].value+"'>"+data[x].text+"</option>"
                }
                $("#rd").html(html);//append the generated html into select box


            }
});

注意:

成功回调的循环逻辑根据ajax响应而不同。

答案 1 :(得分:-1)

$.ajax({
    url: '123.php',
    type: 'POST',
    data: {post_data:post_data},
    dataType: 'JSON',
    success: function(data) {
       for(var i=0;i<data.length;i++){
           var option = document.createElement("option");
           option.value = data[i].value;
           option.innerHTML = data[i].text;

           //or for example "select[name='FORM[rd]']" or simply "#rd"
           $(".valid.sbi").append(option);
       }
    }
});

......这将是我所知道的最简单的方法(for循环是在不知道响应结构的情况下编写的,并且必须改变其中)