我有一个表格,在每个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
}
但不起作用
答案 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'
,因为它引用了下拉本身,而不是它的父级。