【问题标题】:jQuery getJSON for parsing a selectlist and adding to another selectlistjQuery getJSON 用于解析选择列表并添加到另一个选择列表
【发布时间】:2014-05-20 13:59:18
【问题描述】:

我正在尝试使用 jQuery 的 getJSON 解析选择列表。虽然,我不确定 a) 是否有可能和 b) 我做对了 - 我认为我不是,因为我无法执行 getJSON 中的任何代码。

代码应该从 JSON 文件中的每个项目中获取值(或文本),然后将它们添加到 html 变量中,最终使用 JSON 中每个项目的值填充 Order select。

作为旁注,当我手动导航到“ChecklistItems/GetOrder/”+ id 时,我得到了刚刚找到的 JSON - 所以我认为这是解析文件的某种问题。

Javascript:

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $("#Type").change(function () {
            var id = $("select#Type option:selected").attr("value");
            var html = "";
            $.getJSON("ChecklistItems/GetOrder/" + id, function (data) {
                $.each(data, function(index, item) {
                    console.log(item);
                    if (item.Selected) {
                        html += ("<option value='" + item.Value + "' Selected='selected'>" + item.Text + "</option>");
                    }
                else {
                    html += ("<option value='" + item.Value + "'>" + item.Text + "</option>");
                    }
                });
                $("#Order").html(html);
            });
        });
    });
</script>

JSON 文件示例:

[{"Selected":false,"Text":"1","Value":"1"},{"Selected":false,"Text":"2","Value":"2"},{"Selected":false,"Text":"3","Value":"3"},{"Selected":true,"Text":"4","Value":"4"}]

【问题讨论】:

    标签: jquery getjson


    【解决方案1】:

    你需要这样做:

    var html = "";
        $.getJSON("/ChecklistItems/GetOrder/" + id, function (data) {
            $.each(data,function(index,item){
                console.log(item);
                if(item.Selected)
                {
                html += ("<option value='"+item.Value+"' Selected='selected'>" + item.Text + "</option>");
                }
                else
                {
                    html += ("<option value='"+item.Value+"'>" + item.Text + "</option>");
                }
            });
            $("#Order").html(html);
                    });
    

    Fiddle HERE

    【讨论】:

    • 嗨,伊桑。我更新了上面的代码以反映您建议的更改。我看到它可以在 JSfiddle 上运行,它告诉我 getJSON 和正在检索的 JSON 文件之间存在一些问题,因为 Order 元素中实际上没有任何更改。您能否提出一个调试此问题的好方法,或者您是否注意到我的代码有任何其他问题?谢谢你,先生。
    • 检查控制台,通过记录数据变量会发生什么?
    • 感谢您的帮助,Ehsan。我没有看到任何东西被添加到控制台,所以可能是 .getJSON 行本身的问题......虽然,我很困惑,因为输入 URL 会返回一个 JSON 文件给我,我可以清楚地查看数据。跨度>
    • 我回来报告说我是个假人。我需要在 URL 中的 ChecklistItems 前面放置一个“/”。另外,你的回答对我很有帮助!非常感谢!
    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2018-09-04
    • 2014-12-30
    • 1970-01-01
    相关资源
    最近更新 更多