Итак, я новичок в Javascript и JQuery, и у меня на коленях лежит этот ужасный старый интернет-магазин. Его основная структура - это форма и две кнопки, каждая кнопка обновляет атрибут "действие", а затем отправляет форму, как это ...

<form id="orderform" name="order" action="javascript:inspect()" method="post">
    ...
    <input type="button" id="btnOrder" value="Order" name="btnOrder">
    <input type="submit" id="btnInspect" value="Inspect" name="submitButtonInspect">
    ...
</form>

С помощью некоторого слабого jquery я установил каждую кнопку "щелчком" для вызова функций, которые выполняют некоторую предварительную работу, а затем отправляю форму. Моя проблема в том, как заставить кнопку «Осмотреть», чтобы отображать возвращаемый HTML-код в диалоговом окне, а не в окне?

function inspect() {
    $("#orderform").attr("target", "_blank");
    $("#orderform").attr("action", "/order/inspectorder.p");
    $("#orderform").submit();
};

Быстрый поиск в Google дал мне этот намек, но я не могу понять, как заставить эту головоломку работать. Мне нужно отправить форму на серверный код Inspectorder.p, который вернет правильный html, но как получить его в модальном диалоговом окне?

$("#dialog").load('myfunction.p', function() {
$(this).dialog({
    modal: true,
    autoOpen: true, 
    closeOnEscape: true,
    height: 200
});

Любые советы приветствуются, я отстой в Интернете и javascript :( С уважением!

0
elwis 7 Фев 2013 в 11:26

1 ответ

Лучший ответ

Поскольку вы уже используете jquery, вы можете использовать метод ajax для отправки формы, например.

   $.ajax ({
    type: 'POST' ,
    url : '/order/inspectorder.p' , 
    data : $("#orderform").serialize() ,
    success : function (data){
        alert (data) ; // this is the returned data
     }, 
    error : function (jqXhr, status, errorthrown){
        alert(errorthrown); // if an error ocurs 
     }
   })

Вы можете успешно обработать возвращенный результат. Если вы используете jquery 1.8+, обратные вызовы разные, но все равно работают. попробуйте это.

1
Furqan Hameedi 7 Фев 2013 в 12:32
Спасибо за помощь, я попробую, как только на сервере снова появятся признаки жизни. «Данные» в этом случае генерируются HTML, думаю, я могу показать это в каком-нибудь красивом окне (или сделать предупреждение, например, html?)
 – 
elwis
7 Фев 2013 в 14:21
Да, «данные» - это возвращенный html, который вы можете показать в любом диалоговом окне jquery / или в каком-либо предупреждении.
 – 
Furqan Hameedi
7 Фев 2013 в 14:43