在下拉列表中显示特定值

时间:2016-02-09 08:07:57

标签: javascript jquery

我有一个表格,在每个ID的每一行中我们都有'客户'列。当用户点击该行时,他可以更改客户端。我正在使用jquery.dialog进行此操作。当出现对话框时,用户会看到包含客户端的下拉列表。如何在对话框出现后,用户将当前客户端视为下拉列表中的选定项目?我试过如下:

onDblClickRow: function (row, $element) {
    $.getJSON('/ManageProjects/GetAvaibleClients/', function (clients) {
        if (clients.length == 0) {
            $('#clientNameEdit').empty();
            $('#clientNameEdit').append('<option value="0">Tasks</option>');
        }
        $.each(clients, function (index, clientt) {
            $('#clientNameEdit').append("<option value='" + clientt.Value + "'>" + clientt.Text + "</option>");
        });
    })
   var currentClient = row.clientName; // Client name from Row
   $('#clientNameEdit select').val(currentClient); // Tried to set like that 
}

但不起作用

2 个答案:

答案 0 :(得分:1)

传递给.val的值必须是clientt.Value,而不是文字名称。

如果您没有clientt.Value,请尝试以下方法: -

$("#clientNameEdit option[text=" + currentClient + "]").attr("selected", true);

并将select函数设置在success内。

答案 1 :(得分:0)

以下对代码段的更改应该可以解决问题:

onDblClickRow: function (row, $element) {
            $.getJSON('/ManageProjects/GetAvaibleClients/', function (clients) {
                if (clients.length == 0) {
                    $('#clientNameEdit').empty();
                    $('#clientNameEdit').append('<option value="0">Tasks</option>');
                }
                $.each(clients, function (index, clientt) {
                    $('#clientNameEdit').append("<option value='" + clientt.Value + "'>" + clientt.Text + "</option>");
                });
                var currentClient = row.clientName; // Client name from Row
                $('#clientNameEdit').val(currentClient); // Tried to set like that but doesn't work                
            });

如上所述,如果你在ajax调用成功之外执行currentClient = row.clientName,它可能会在填充下拉列表之前触发,因此没有任何效果。

其次jQuery选择器'#clientNameEdit select'应该只是'#clientNameEdit',因为它引用了下拉本身,而不是它的父级。