【问题标题】:JQuery Value of Select Box Not Being Set未设置选择框的JQuery值
【发布时间】:2014-07-22 01:25:10
【问题描述】:

我正在创建一个页面,我网站的用户可以在其中编辑他们创建的列表。列表分为三个类别,每个类别都有自己的子类别。我正在使用 AJAX 根据选择的类别动态加载子类别。由于这是一个编辑页面,因此必须预设每个字段的值,以便用户可以根据需要更改它们。类别加载良好,子类别也是如此。但是,我无法将子类别选择框的值设置为列表的子类别值。

这是加载子类别的函数:

function loadEditSubcats(){
$('#edit-subcategory').empty();

var cat = $('#category-hidden').val();

var postData = { category : cat };

$.post("/assets/scripts/fetch_subcats.php",
        postData,
        function(data, text, jqxhr) {
            $.each(data, function(key, val){
                $('#edit-subcategory').append('<option value="' + val + '">' + val + '</option>');
            });
        },
        'json'
    ).fail(
        function( jqXHR, textStatus, errorThrown ) {
            alert(errorThrown);
        }
    );
}

这是我在页面加载时加载子类别的地方,并尝试预设子类别的值:

$(document).ready(function () {
    loadEditSubcats();
    $("#edit-subcategory").val($('#subcat-hidden').val());
});

最后,这是子类别的选择框,以及包含初始子类别的隐藏值:

<input type="hidden" id="subcat-hidden" value="<?=$item->subcategory?>">
<div class="form-group col-md-6">
    <label id="name-label"><h3>Subcategory</h3></label><br>
    <span "dropdown-menu-right">
        <select class="form-control" id="edit-subcategory"></select>
    </span>
</div>

我认为也许 AJAX 正在异步加载,并且在设置值时,子类别实际上并未加载。非常感谢任何见解!谢谢!

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    你可以改变你的方法来完成这项工作

    $.ajax({
    type: "POST",
    url: "/assets/scripts/fetch_subcats.php",
    data: postData,
    success: function(data){
    
      $.each(data, function(key, val){
                $('#edit-subcategory').append('<option value="' + val + '">' + val + '</option>');
            });
    
      //Do this in success function
      $("#edit-subcategory").val($('#subcat-hidden').val());
    
    },
    dataType: json
    });
    

    【讨论】:

    • 这应该可以,如果没有尝试 $(document).on("ajaxComplete", function(){ });
    • 我会这样做,但是如果用户选择的类别不包含他们的项目的子类别,这个函数会如何反应?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2017-01-26
    • 2013-08-10
    相关资源
    最近更新 更多