模态对话框未显示正确的信息

时间:2012-02-21 15:07:06

标签: javascript jquery html modal-dialog

这是我的动作脚本

action.js

function showDistrict() { //alert("hello");
    $.ajax({
        url: 'dialog_applet.jsp#dialog-modal-district',
        success: function(msg) {
            document.getElementById("dialog-content-district").innerHTML = msg;
        }
    });
    $(function() {
        $("#dialog:ui-dialog").dialog("destroy");
        $("#dialog-content-district").dialog({
            height: 300,
            width: 350,
            modal: true
        });
    });
    // alert("hello1");
}

function showCity() { //alert("hello");
    $.ajax({
        url: 'dialog_applet.jsp#dialog-modal-city',
        success: function(msg) {
            document.getElementById("dialog-content-city").innerHTML = msg;
        }
    });
    $(function() {
        $("#dialog:ui-dialog").dialog("destroy");
        $("#dialog-content-city").dialog({
            height: 300,
            width: 350,
            modal: true
        });
    });
    // alert("hello1");
}​

这是我的内容脚本,位于 dialog_applet.jsp

<div id="dialog-modal-district">

dialog-modal-district is here
</div>
<div id="dialog-modal-city">
dialog-modal-city is here
/applet>

随叫随到任何一项功能 showDistrict() showCity()。它显示了<div>的内容。但是,我想检索已被调用的特定<div>内容。我的意思是打电话给 showDistrict ,它只会显示对话框模式区在这里,但它显示对话框 - 模式 - 区域在这里对话框 - 莫代尔城市在这里

任何帮助表示赞赏!! 提前致谢。 !!

2 个答案:

答案 0 :(得分:1)

如果我正确地提出了你的问题,我相信函数showCity()的调用,你将获得ajax repsonse作为两个div的内部内容,即 dialog-modal-district和dialog-modal-city。这是因为您只是加载了对话框dialog_applet.jsp#dialog-modal-city,它将返回dialog_applet.jsp页面的全部内容,而不仅仅是#dialog-modal-city div内容。

您可以将div名称作为参数和URL一起传递,具体取决于您传递的URL,您可以生成ajax响应。

答案 1 :(得分:0)

我现在看到的是什么问题。

不幸的是,使用网址dialog_applet.jsp#dialog-modal-district将完全加载jsp页面的内容,而不仅仅是您指定的片段。

你有两种选择来实现你想要的目标。

  1. 自行提取您要插入对话框的实际内容。 ajax请求将加载完整的jsp页面,使用.find()方法,您可以选择您感兴趣的部分,只将其附加到对话框中:

    success: function(msg) {
        // "msg" is the full jsp page
        $(msg)
            // select the part you want
            .find('#dialog-modal-district')
            // append it to your dialog
            .appendTo($("#dialog-content-district"));
    }
    
  2. 使用jQuery中的.load() 方法。它的作用是从指定的URL加载内容,并允许使用与您尝试使用的URL语法类似的url语法自动加载文档片段

    $("#dialog-content-district")
        .load('dialog_applet.jsp #dialog-modal-district');
    

    请注意jsp页面和ID选择器之间的空白区域,这对于保留它很重要,否则它将无法正常工作。