Jquery将值附加到select的下拉列表中

时间:2014-10-10 08:36:18

标签: javascript jquery json

我试图在laravel中的依赖下拉列表中返回值。 api / dropdown返回json,一切正常。但是,返回的值不会在我的下拉列表中填充,而是显示[object Object]。

我错过了什么吗?

  $(document).ready(function($){

      $('#firstselect').change(function(){

            $.get("{{ url('api/dropdown')}}", { option: $(this).val() }, 
            function(data) {
                     $.each(data, function(key, value) {   
                         $('#secondselect')
                             .append($("<option></option>")
                             .attr("value",key)
                             .text(value)); 
                    });

            });

        });

    });

3 个答案:

答案 0 :(得分:2)

$.each(data,function(index,value){

//Make sure value is the string you want to attach by putting a debugger here;
//Append code;

  $('#secondselect').append($("<option></option>")
                         .attr("value",key)
                         .text(value));

});

在您发布的代码中

  $(document).ready(function($){

      $('#firstselect').change(function(){

            $.get("{{ url('api/dropdown')}}", { option: $(this).val() }, 
            function(data) {
                     $.each(data, function(key, value) {   

                /**********************************************/
                //Evaluate and make sure value is string
                debugger;
                console.log(value);
               /*************************************************/

                   $('#secondselect').append($("<option></option>")
                             .attr("value",key)
                             .text(value)); 
                    });

            });

        });

    });

答案 1 :(得分:0)

使用$ .parseJSON从对象

中获取值
 function(data) {
 data =  $.parseJSON(data);
 ...

答案 2 :(得分:0)

尝试FIDDLE

HTML

<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 

jquery的

$(function () {
    var $val = "Random";
         $('select').append('<option value="'+$val+'">'+$val+'</option>');

        });
希望它有所帮助..