0

ですから、私はJavascriptとJqueryに非常に慣れていないので、このひどい古いWebショップをひざに乗せました。基本的な構造はフォームと2つのボタンで、各ボタンは「アクション」属性を更新してから、次のようにフォームを送信します。

<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
});

どんなアドバイスも大歓迎です、私はウェブとジャバスクリプトを吸います:(よろしく!

4

1 に答える 1

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以降を使用している場合、コールバックは異なりますが、それでも機能します。これを試してみてください。

于 2013-02-07T08:32:16.220 に答える