在下拉框中显示“正在加载...”

时间:2009-07-13 17:32:40

标签: jquery asp.net-mvc ajax

我正在运行数据库查询以使用jquery加载下拉框。有没有办法在查询运行时在下拉框中显示“正在加载...”字样?

感谢。

5 个答案:

答案 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
...