2010-11-13 74 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