2010-11-13 53 views
2

我想要一個有兩個按鈕的窗體,提交&預覽,預覽按鈕應該打開一個新的窗口,輸入區域中的文本我該如何發生這種情況?jquery/javascript發表新視圖時按下預覽按鈕

<form method='post'> 
//input 
<input type='text' name='headline' id='headline' /> 
<textarea name='content' id='content'></textarea> 
//buttons 
<input type='submit' id='btnsubmit' value='submit' /> 
<input type='submit' id='btnpreview' value='preview' /> 
</form> 

我不能在形式上target'_blank」因爲我有兩個按鈕,只有一個應在新窗口中打開,我想這jQuery中進行。有人可以幫忙。

回答

0

可以改變的onclick表單的目標:

<input type='submit' onclick="this.form.removeAttribute('target')" id='btnsubmit' value='submit' /> 
<input type='submit' onclick="this.form.setAttribute('target','_blank')" id='btnpreview' value='preview' /> 

但是:這個問題,我覺得馬塞爾喜歡的是第一點:一旦你點擊了預覽按鈕 ,目標是設置爲_blank。如果您現在在<input>上執行[輸入],目標將不會被重置爲默認目標,它將保持_blank,這不是期望的行爲。

可以解決這個問題,例如這樣:

<form onsubmit="document.getElementById('btnsubmit').click();return false;"> 
//input 
<input type='text' name='headline' id='headline' /> 
<textarea name='content' id='content'></textarea> 
//buttons 
<input type='submit' onclick="this.form.removeAttribute('target');this.form.submit();return false;" id='btnsubmit' value='submit' /> 
<input type='submit' onclick="this.form.setAttribute('target','_blank');this.form.submit();return false;" id='btnpreview' value='preview' /> 
</form> 
+0

@Marcel Korpel:對我的作品 – PleaseStand 2010-11-13 16:19:20

+0

真的是一個問題,它不會永遠工作像預期的,看到我更新的帖子。 – 2010-11-13 19:34:24

2

如果你想的形式張貼到一個新的窗口,你需要設置窗體的目標。您可以設定目標爲每個按鈕:

$(function(){ 
    $('#btnsubmit').click(function(){ 
    this.form.target = ''; 
    }); 
    $('#btnpreview').click(function(){ 
    this.form.target = '_blank'; 
    }); 
}); 
+0

@Marcel Korpel:適用於我 – PleaseStand 2010-11-13 16:18:58

+0

@ideal:哇,實際上,我認爲按下按鈕上的Enter鍵後,沒有觸發'click'事件。 :/ – 2010-11-13 16:29:40