0

所以,我对 Javascript 和 Jquery 非常陌生,并且在我的腿上得到了这个可怕的旧网店。它的基本结构是一个表单和两个按钮,每个按钮更新“action”属性然后提交表单,像这样..

<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 :( 问候!

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 回答