我有此输入的简单形式:

<%= f.input :seleced_seats, collection: @event.seats, label: "-", label_html: { style: 'visibility: hidden; height: 0px;'}, include_blank: false %>


它包含我要使用AJAX更新的选项。我获得输入数组(data.seats)的JavaScript是:

$("#event_seleced_seats").change(function(){
    var seleced_seats = $(this).val();
    var seleced_term = $("*[class='list-group-item active']").attr('id');

    jQuery.getJSON(window.location.href + "/price", {edition: seleced_seats, term: seleced_term}, function(data) {
        $("#price").text(data.total_price);
        $("#termA").text(data.seats);
        console.log(data.seats);
    });
});


如何从data.seats用数据重绘f.input?

最佳答案

如何清空您的下拉列表并使用jQuery append添加data.seats?

所以像这样:

(假设data.seats将返回一个座位对象数组)

var dropDown = $(yourdropdown);
dropDown.empty();

data.seats.forEach(function(seat){
  dropDown.append("<option value='"+seat.your_value+"'>"+seat.your_value+"</option>")
});


您还可以使用jQuery each方法遍历集合。
有关更多信息,请参见API:http://api.jquery.com/jquery.each/

10-04 16:31