2013-02-07 275 views
0

所以,我非常喜歡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(); 
}; 

一些快速的谷歌搜索給了我這個提示,但我無法管理如何讓這個難題工作。我需要將表單提交給inspectorder.p服務器代碼,誰將返回正確的html,但是如何將其轉換爲模態對話框?

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

任何意見是遠迎,我在網上和JavaScript吸:( 祺!

回答

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+,那麼回調是不同的,但它仍然有效。請試試看。

+0

感謝您的幫助,我會嘗試只要有一些服務器再次在服務器上播放,就一出。在這種情況下,'數據'生成的HTML,猜我可以顯示,在一些不錯的窗口然後(或做像HTML提醒?) – elwis

+0

是的,'數據'是返回的HTML,你可以顯示在任何jQuery對話框/或者一些警報。 –