【问题标题】:Need to append to select using JQuery需要追加以使用 JQuery 选择
【发布时间】:2017-03-02 13:09:06
【问题描述】:

我需要使用 jQuery 附加一个 HTML 选择选项。我有一段代码,当单击下拉菜单时,它会通过 AJAX 获取子函数。完成此操作后,我还需要添加另一个值为 99 的选项标签和其他子函数的文本。我的代码:

$.ajax({
    type: "POST",
    data: {function_id: function_id},
    url: '<?php echo WEB_URL; ?>includes/ajax/target_audience_sub_functions.php',
    dataType: 'json',
    success: function(json) {
        var $el = $("#target_audience_sub_function");
        $el.empty(); // remove old options
        $el.append($("<option></option>").attr("value", '').text('Please Select'));
        $.each(json, function(value, key) {
            $el.append($("<option></option>").attr("value", value).text(key));
        });
        $el.append($("<option></option>").attr("value", '99').text('Other sub function'));
    }
});

$el.append 是我试图用来添加其他选项标签的代码,但它不起作用。我只从 AJAX 得到那些。顺便说一句,第一个追加也不起作用。

HTML

<div class="form-group">
    <label for="target_audience_sub_function">Sub-Function</label>
                  <select data-selectedSubFunction="<?php echo (isset($audience)) ? $audience['target_audience_sub_function'] : ''; ?>" class="form-control light_grey_bg ta_sub_function" id="target_audience_sub_function" name="target_audience_sub_function[]">
                      <option value="">-- Choose sub function --</option>
                      <?php $get_functions = $db->get_all('sub_functions');
                        foreach ($get_functions as $function) { ?>
                            <option value="<?php echo $function['sub_function_id']; ?>" <?php echo isset($audience) ? $audience['target_audience_sub_function'] == $function['sub_function_id'] ? "selected='selected'" : "" : ''; ?> ><?php echo $function['sub_function_name']; ?></option>
                       <?php } ?>
                  </select>
              </div>

【问题讨论】:

标签: javascript jquery html ajax html-select


【解决方案1】:

您的代码应该可以工作,我刚刚尝试过,选择已根据您的需要填充。

var json = {
  0: 'Hello',
  1: 'Bobby'
};
$(function() {
  var $el = $("#target_audience_sub_function");
  $el.click(function() {
    $el.empty(); // remove old options
    $el.append($("<option></option>").attr("value", '').text('Please Select'));
    $.each(json, function(value, key) {
      $el.append($("<option></option>").attr("value", value).text(key));
    });
    $el.append($("<option></option>").attr("value", '99').text('Other sub function'));
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="target_audience_sub_function"></select>

也许成功回调永远不会执行,而您看到的选项是 PHP 打印的?

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 2015-02-25
    • 2011-08-20
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多