jQuery getJSON用于解析选择列表并添加到另一个选择列表

时间:2014-05-19 16:18:07

标签: jquery getjson

我尝试使用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"}]

1 个答案:

答案 0 :(得分: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