Javascript 在下拉列表中显示特定值

Javascript 在下拉列表中显示特定值,javascript,jquery,Javascript,Jquery,我有一个表,其中每行中每个id都有“Client”列。当用户单击行时,他可以更改客户端。我正在使用jquery.dialog进行此操作。当出现一个对话框时,用户会看到一个带有客户端的下拉列表。如何在对话框出现后,用户将当前客户端视为下拉列表中的选定项?我尝试了以下方法: onDblClickRow: function (row, $element) { $.getJSON('/ManageProjects/GetAvaibleClients/', function (clients) {

我有一个表,其中每行中每个id都有“Client”列。当用户单击行时,他可以更改客户端。我正在使用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 
}
但是不起作用

传递到.val的值必须是clientt.value,而不是文本名

如果没有clientt.Value,请尝试以下操作:-

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

并将select的设置带到success函数中。

对代码段的以下更改应该可以做到这一点:

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',因为它引用的是下拉列表本身,而不是它的父项。

将$'clientNameEdit select'.val替换为$'clientNameEdit'.val。似乎clientNameEdit是选择自身的工具。也不起作用:+插入以var currentClient=row.clientName开头的行;进入$.getJSON回调$'clientNameEdit'.valcurrentClient;此行下拉列表变为空白后,只需计算var currentClient=row.clientName返回的值。这可能是下拉列表为空的原因,因为它返回的值不在下拉列表中。