【问题标题】:How can i fill a dropdown list before opening a jQuery dialog如何在打开 jQuery 对话框之前填写下拉列表
【发布时间】:2013-08-24 01:01:33
【问题描述】:

我有一个表格,列出了一堆打开基本文档的链接,即。 pdf、文档等。在这些链接的右侧,我有一个 href 链接来打开一个 jQuery 对话框,其中包含每个特定链接的详细信息,例如,链接名称、上传新更新文档的选项等。现在也在这个对话框中我希望能够有一个包含排序顺序的下拉列表,这将是数字 1、2、3、4、5 等的列表,以便用户可以重新排序他们的链接。用数据库中的所需数据填充表单文本框、下拉列表(最重要的)然后打开 jquery 对话框的最佳方法是什么。我目前正在使用 jquery ajax 和 webservice 来很好地填充文本框,但是在呈现浏览器后下拉列表会被填充。当用户单击位于每个链接右侧的 href 标记时,我使用 jquery 按钮单击事件执行 ajax 调用。这不允许我在保存按钮单击事件的回发中获取 selectedvalue 以获取更新的值并更新记录。任何帮助将不胜感激。

function LoadDocumentSort(id, selectedSort) {
$.ajax({
    type: 'POST',
    url: baseUrl + 'webservices.asmx/GetSortCount',
    data: JSON.stringify({ articleID: articleid }),
    contentType: "application/json; charset=utf-8",
    dataType: 'json',

    success: function (data) {

        if (data.d != '') {

            $("#UIEditSort").empty();
            var sortCount = data.d;

            var listItems;
            listItems = "<option value=''></option>";
            for (var i = 1; i < sortCount + 1; i++) {


                if (selectedSort == i) {
                    listItems += "<option selected='true' value='" + i + "'>" + i + "</option>";
                    //$("#UIEditSort").append($("<option selected='true'><option />").val(i).text(i));
                }
                else {
                    //$("#UIEditSort").append($("<option><option />").val(i).text(i));
                    listItems += "<option value='" + i + "'>" + i + "</option>";
                }
            };

            $("#UIEditSort").html(listItems);
        }
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert('error');
    }
});

【问题讨论】:

  • 哇……慢点。段落很好,代码更好。描述您遇到的具体问题以及到目前为止您尝试过的方法。
  • 感谢您的快速响应。我的问题是我需要在打开 jquery 对话框之前加载一个 dropdwon 列表。我使用 jquery 按钮单击事件来进行 ajax 调用以填充文本框,并且在我的对话框打开时工作正常。在该 ajax 调用成功后,我调用此函数来尝试加载下拉列表:
  • 我可以提出的一个建议是打开带有消息加载的对话框......并隐藏包含文本框和下拉列表的 div,并为文本框调用 AJAX 调用,并在成功时那叫下拉。只有在下拉ajax调用成功后才显示文本框的内容并下拉。
  • 谢谢德维什。您能否提供一个示例或指出一个打开带有消息加载的对话框的好示例?逻辑是有道理的,但不确定消息加载是什么。
  • @ches185 我在下面的答案中添加了可能的伪代码

标签: jquery asp.net ajax web-services


【解决方案1】:

下面的解决方案看起来像这个伪代码

      $('#link').on("click",function(event){
        $("#loadingDiv").html('Loading ....').show();
        $("#containerOfControls").hide();
        $("#dialogId").dialog('open');
    //Now make the first ajax call
    $.ajax({
     URL: '',
     success : function(result){
                //Populate the textbox and make another ajax call
                  $.ajax({
                  URL : '',
                   success : function(result){
                                //Populate the dropdown
                                  $("#loadingDiv").hide();
                                   $("#containerOfControls").show();

                              }
                         }}}});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多