我正在运行数据库查询以使用jquery加载下拉框。有没有办法在查询运行时在下拉框中显示“正在加载...”字样?
感谢。
答案 0 :(得分:10)
您可以在ajax运行时将临时项添加到下拉列表中:
$('#myDropDown').prepend($('<option></option>').html('Loading...'));
答案 1 :(得分:8)
让我们打电话给你'下载'userChoice',你可以编写像
这样的代码$(document).ready(
function()
{
//Before calling your ajax method, clear the select drop down.
//and add a loading option.
$('#userChoice')
.children()
.remove()
.end()
.append('<option value="">Loading...</option>');
$.ajax(
//Load the userChoice as usual in success handler of your ajax call.
success : function() { //Load #userChoice }
);
}
);
答案 2 :(得分:2)
如果没有任何内容可以开始,只需将其设为默认HTML,即可消除一半的jQuery。
<select>
<option>Loading...</option>
</select>
当您的查询完成后,只需将单个option
替换为您的结果即可。
答案 3 :(得分:1)
在ajax发布之前添加此内容
$('#myDropDown').empty();
$('#myDropDown').append($('<option></option>').html('Loading...'));
然后再次成功动态附加下拉列表
$('#myDropDown').empty();
$('#myDropDown').append($('<option></option>').val("").html("Select"));
for (var i = 0; i < array.length; i++) {
$('#myDropDown').append($('<option></option>').val(array[i].selectedvalue).html(array[i].selectedtext));
}
答案 4 :(得分:0)
如果您通过AJAX调用运行查询,则可以使用以下内容首先清除下拉列表并插入加载消息(在客户端Javascript中):
var lb = document.getElementById ("myDropdownList");
lb.options.length = 0;
var newOpt = new Option("Loading...", "");
lb.options[0] = newOpt;
// Your jquery call here
...