javascript - 未设置选择框的 JQuery 值

标签 javascript php jquery ajax

我正在创建一个页面,我的网站的用户可以在其中编辑他们创建的列表。列表分为三个类别,每个类别都有自己的子类别。我使用 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 可能是异步加载的,并且在设置值时,子类别实际上并未加载。任何见解都将不胜感激!谢谢!

最佳答案

您可以像下面这样改变您的方法来完成这项工作

$.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
});

关于javascript - 未设置选择框的 JQuery 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24832019/

相关文章:

php - 是否可以使用 mysqli 语句获取表头?

javascript - Ajax 请求不断翻倍

javascript - 使用 $this 代替 $(this) 是否可以提高性能?

javascript - Jquery仅隐藏最后通知

javascript - 使用 .map 函数从 JSON 对象中删除一个值

javascript - 这个链接函数如何知道 "tabsCtrl"引用了什么?

javascript - 在网页浏览器控件内播放视频(使用 javascript 添加)原因 "error #2148 try loosening flash security setting"

Javascript - 修改 json 以满足我的需要

php - 警告 : phpmyadmin max_input_vars error

php - 将多个值插入数据库、php、sql