2015-04-01 109 views
0

我得到了關於目標的形式和它的目標窗口..這個問題表單的目標窗口可以說我們在點擊這個Html.BeginForm是否可以操作使用jQuery

@using (Html.BeginForm("TestHtmlRedirect", "Home", FormMethod.Post, new {@target="_blank", @id = "tagging_frm", @class = "form-horizontal row-border" })) 
{ 
    <input type="submit" value="Html PsBk Click" /> 
} 

正常提交按鈕,它會觸發一個新的標籤,我的問題是 如何,或者是否可以追加一些東西到這個表格的新創建的標籤?

例如我想附加一個加載gif在父標籤新創建的選項卡上。

+0

$(「#DOM 「).append(」 #anotherdom「); – 2015-04-01 07:59:01

+0

追加什麼標籤?如果你想添加HTML到結果標籤,你需要給它一個名字 - 例如,將_blank改爲_mywin,如果表單的動作與腳本的起源相同,則可以使用'var myWin = window。打開(「」,「_ mywin」);'得到句柄,然後執行'$(mywin).find('#somediv')。append('some stuff');' - 現在你改變了問題,會改變整個事情打開窗口,添加加載程序,然後將該窗體的目標爲一個iFrame – mplungjan 2015-04-01 07:59:15

+0

@mplungjan,但問題在於它是由窗體生成的。是否有可能在該選項卡上追加一些東西 – 2015-04-01 08:00:30

回答

1

假設行動和腳本都來自同一個服務器/產地,你可以這樣做:

$(function() { 
    $("#tagging_frm").on("submit",function(e) { 
    e.preventDefault(); // cancel submit 
    var w=window.open("",this.target); 
    w.document.write('<div id="container"><img src="loading.gif"/></div>'); 
    w.document.close(); 
    $.post(this.action,function(data) { 
     w.document.getElementById("container").innerHTML=data; 
    }); 
    }); 
}); 

要加載CSV或PDF嘗試這種替代

$(function() { 
    $("#tagging_frm").on("submit",function(e) { 
    e.preventDefault(); // cancel submit 
    var w=window.open("",this.target); 
    w.document.write('<form id="myForm" action="'+this.action+'" target="myframe" method="post"></form><img id="loading" src="loading.gif"/><iframe name="myframe" onload="document.getElementById(\'loading\').style.display=\'none\'"></iframe>'); 
    w.document.close(); 
    w.document.getElementById("myForm").submit(); 
    }); 
}); 
+0

我想我應該刪除窗體上的_mywin? – 2015-04-01 08:11:22

+0

如果您想要定位iFrame,則不需要。如果所有腳本和表單操作都來自同一個源,請將數據ajax並顯示出來。然後你可以做任何你想要的,而它正在加載 – mplungjan 2015-04-01 08:15:31

+0

我試過你的代碼,它打開2個窗口。那些追加的和其他的是空白的 – 2015-04-01 08:17:55

相關問題