jquery - 使用 json 将选项标记为在多选中选择

标签 jquery ajax json

我在 jQuery 模式对话框中有一个编辑表单。它有一个直接从数据库填充的多选框。我正在编辑的记录来自使用 json 的数据库。有一个名为 problemids 的字段,其中包含以逗号分隔的 ID。

多选看起来像这样:

<select name="Problems" size="5" multiple="multiple" id="Problems">
    <option value="26">Backup battery error or cannot hold correct time.</option>
    <option value="22">Battery contacts damage</option>
    <option value="20">Belt clip damage</option>
    <option value="31">Cannot flash firmware</option>
    <option value="32">Cannot load task</option>
    <option value="34">Case damage</option>
    etc...  
</select>

json 返回如下所示:

[{
    "ModelID":33,
    "AccountID":1,
    "RandomID":"lo9876yhgbvfdr54",
    "ManID":5,
    "Model":"5090",
    "ProblemIDs":"22,26",
    "Active":true,
    "DateCreated":"2/27/2012 5:35:00 PM",
    "DateUpdated":"10/26/2012 2:04:00 PM",
    "UpdatedBy":6998,
    "CreatedBy":null
}]  

还有我的ajax:

$.ajax({
    url: "ajax/edit-model.asp",
    cache: false,
    data: { recordid: recordid, rid: rid, crud: crud },
    type: 'GET',
    dataType: "json",
    error: function(xhr, textStatus, errorThrown) {
        alert("An error occurrred! " + errorThrown);
    },
    success: function(data, textStatus) {
        $("#edit-dialogForm #RecordID").val(data[0].ModelID);
        $("#edit-dialogForm #RID").val(data[0].RandomID);
        $("#edit-dialogForm #ManID").val(data[0].ManID);
        $("#edit-dialogForm #Model").val(data[0].Model);
        if(data[0].Active){
            $('#edit-dialogForm input[name="Active"]:eq(0)').prop('checked', true);
        }else{
            $('#edit-dialogForm input[name="Active"]:eq(1)').prop('checked', true);
        }
    }
});

如何在多选中将项目标记为“已选择”?

最佳答案

fiddle - http://jsfiddle.net/tariqulazam/TXcgh/

var data = {
    "ModelID":33,
    "AccountID":1,
    "RandomID":"lo9876yhgbvfdr54",
    "ManID":5,
    "Model":"5090",
    "ProblemIDs":"22,26",
    "Active":true,
    "DateCreated":"2/27/2012 5:35:00 PM",
    "DateUpdated":"10/26/2012 2:04:00 PM",
    "UpdatedBy":6998,
    "CreatedBy":null
};
$.each(data.ProblemIDs.split(','), function(index, element){
                     $('#Problems').find('option[value="'+ element +'"]').attr('Selected', 'Selected');
});

更新:修改您的成功回调,如下所示

success: function(data, textStatus) {
        $("#edit-dialogForm #RecordID").val(data[0].ModelID);
        $("#edit-dialogForm #RID").val(data[0].RandomID);
        $("#edit-dialogForm #ManID").val(data[0].ManID);
        $("#edit-dialogForm #Model").val(data[0].Model);
        if(data[0].Active){
            $('#edit-dialogForm input[name="Active"]:eq(0)').prop('checked', true);
        }else{
            $('#edit-dialogForm input[name="Active"]:eq(1)').prop('checked', true);
        }
        $.each(data[0].ProblemIDs.split(','), function(index, element){
                     $('#edit-dialogForm #Problems').find('option[value="'+ element +'"]').attr('Selected', 'Selected');
        });
    }

关于jquery - 使用 json 将选项标记为在多选中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168731/

相关文章:

javascript - 轻松自动完成,引用深层嵌套值

jquery - 使用tinyMCE.execCommand ('mceRemoveControl', false, "textarea_id"),Tinymce 和 j 为空;

javascript - 水平滚动到 anchor

javascript - 使用 jquery $.ajax() 调用 perl CGI

javascript - 为什么这不起作用?

json - 使用Play呈现JSON!和Scala

带有链接的 jQuery ul - 只影响 li child

javascript - 带有 JSON 数据源的 jQuery DataTables 插件在全局搜索上接受多个 POST 请求

java - java中如何从这个json字符串中获取值?

json - 如何从JSON返回Date值到Google Visualization API