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