【问题标题】:Can't use jQuery to change select value to option dynamically populated by ajax无法使用 jQuery 将选择值更改为由 ajax 动态填充的选项
【发布时间】:2013-05-20 21:26:09
【问题描述】:

http://jsfiddle.net/ueDTd/ 这样更改选择选项的值,如果选项由 AJAX 填充,则不起作用。

这应该将选项更改回页面重新加载后的状态,因为发现表单无效(缺少必填字段等)

结果是它总是更改为第一个动态填充的结果,该结果也恰好具有值“1”。

这是包括 AJAX 调用在内的完整代码:

$(document).ready( function() {

var dh_json;
var url = base_url+'doc_headings/get_json_doc_headings';
$.ajax({
        url: url,
        dataType: 'json',
        success: function(encoded_json){
            dh_json = encoded_json;
            $.each(encoded_json, function(key, index) {
                $('#doc_headings').append(
                    $('<option>', { value : index.id } )
                    .text(index.content)
                );
            }); 
        } // End of success function of ajax form
}); // End of ajax call    

$('#doc_headings').change(function() {
   var dh_el_value = $('#doc_headings').val();
  $.each(dh_json, function(key, index) {
    if (index.id == dh_el_value) {
        $('#body').attr("placeholder", index.directions);
    }
  });
});

$('select#doc_headings').val(doc_headings_selected);

});

这里是选择元素的 HTML:

        <select id="doc_headings" name="doc_headings">
        <option disabled="disabled" value="no" selected="selected"> - Document Type - </option>
    </select>

如何使用 ajax 生成的选项更改选择字段的值?

【问题讨论】:

  • 它是异步的,所以选项附加在设置脚本末尾值的函数之后?

标签: jquery html ajax html-select


【解决方案1】:

发生了什么:

  1. 发送 AJAX 请求
  2. 然后您将进入“$('select#doc_headings').val(doc_headings_selected);”的执行
  3. 接收来自服务器的响应,在 ajax 调用中触发 success 函数...它正在填充选择菜单。

将最后一行代码(如下所列)移动到 ajax 调用中成功函数的末尾,它应该可以工作。

$('select#doc_headings').val(doc_headings_selected);

【讨论】:

  • 非常感谢!我想到了这个......我不知道为什么我不只是尝试一下!忙着做徒劳的尝试,我猜 :)
【解决方案2】:

on点赞

$('#doc_headings').on('change',function() {
 var dh_el_value = $('#doc_headings').val();
$.each(dh_json, function(key, index) {
if (index.id == dh_el_value) {
    $('#body').attr("placeholder", index.directions);
}
 });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 2015-07-15
    • 2023-03-16
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多