首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery动态对象加载选择器

JQuery动态对象加载选择器
EN

Stack Overflow用户
提问于 2017-04-12 14:11:44
回答 1查看 46关注 0票数 0

当我单击一个单选按钮加载子窗体时,我有一个表单。好的,这是完美的工作,但有3个选择器,我需要外部数据时,只有这个子表单加载。所以,我是这样做的:

代码语言:javascript
运行
复制
$(document).on('focus', '#reemb', function () {
    $.getJSON("/banks.php", function (json) {
        $('#bank').empty();
        $.each(json, function (i, obj) {
            $('#bank').append($('<option>').text(obj.name).attr('value', obj.code));
        });
    });

    $.getJSON('/statecity.json', function (data) {
        var items = [];
        var options = '<option value="">State</option>';
        $.each(data, function (key, val) {
            options += '<option value="' + val.name + '">' + val.name + '</option>';
        });
        $("#state").html(options);

        $("#state").change(function () {

            var options_city = '';
            var str = "";

            $("#state option:selected").each(function () {
                str += $(this).text();
            });

            $.each(data, function (key, val) {
                if (val.name == str) {
                    $.each(val.city, function (key_city, val_city) {
                        options_city += '<option value="' + val_city + '">' + val_city + '</option>';
                    });
                }
            });
            $("#city ").html(options_city);

        }).change();

    });
});

这很好,但是每次我需要更改一个日期时,选择器就会清除并重新加载。

我试着添加标签onload来启动函数,在这个子表单中加载选择器,但是不起作用。还尝试将事件更改为.on,但也不起作用。我该怎么做?

Thx!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-12 14:22:16

不知道什么是#reemb,我会清空相关的子选择:

如果保存选择的容器也被清空,则需要委托所有类似于$(document).on("change","#bank", function() {的对象的处理程序。

代码语言:javascript
运行
复制
$(document).on('click', '#reemb', function() {
  $.getJSON("/banks.php", function(json) {
    $('#bank').empty();
    $.each(json, function(i, obj) {
      $('#bank').append($('<option>').text(obj.name).attr('value', obj.code)).change();
    });
  });

  $('#bank').on("change", function() {
    $('#city').empty();
    $.getJSON('/statecity.json', function(data) {
      var items = [];
      var options = '<option value="">State</option>';
      $.each(data, function(key, val) {
        options += '<option value="' + val.name + '">' + val.name + '</option>';
      });
      $("#state").html(options).change(); // if needed
    });

    $("#state").on("change", function() {
      var options_city = '';
      var str = "";
      $("#state option:selected").each(function() {
        str += $(this).text();
      });
      $.each(data, function(key, val) {
        if (val.name == str) {
          $.each(val.city, function(key_city, val_city) {
            options_city += '<option value="' + val_city + '">' + val_city + '</option>';
          });
        }
      });
      $("#city ").html(options_city).change(); // if needed
    });
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43372039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档