модальный диалог не показывает правильную информацию - PullRequest
1 голос
/ 21 февраля 2012

это мой скрипт действия

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 , он только покажет, что dialog-modal-district здесь , но он показывает, что dialog-modal-district здесь dialog-modal-город здесь

Любая помощь приветствуется!Заранее спасибо.!!

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Если я правильно понял ваш вопрос, я полагаю, что при вызове функции showCity() вы получите ответ ajax как внутреннее содержимое обоих элементов div, а именно dialog-modal-district и dialog-modal-city.Это потому, что вы просто загружаете url dialog_applet.jsp # dialog-modal-city, который будет возвращать все содержимое страницы dialog_applet.jsp, а не только # dialog-modal-city div content.

Вы можете передатьимя div в качестве параметра вместе с URL, в зависимости от переданного URL, вы можете сгенерировать ответ ajax.

0 голосов
/ 21 февраля 2012

Теперь я вижу, в чем проблема.

К сожалению, использование URL 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. Используйте метод .load () из jQuery.Его роль заключается в загрузке содержимого с указанного URL-адреса, и он позволяет автоматически загружать фрагменты документа , используя синтаксис URL, немного похожий на тот, который вы пытались использовать:

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

    Обратите внимание напробел между страницей jsp и селектором идентификатора, важно сохранить его, иначе он не будет работать.

...