我是jquery的新手,为这个简单的问题感到抱歉。我正在尝试提交一个有两个提交按钮的表单......
<input id="submitBtn" name="action" value="view" type="submit" class="ym-button ym-primary" value="<spring:message code="button.view"/>" title="<spring:message code="button.view" />" />
<input id="saveBtn" name="action" value="save" type="submit" class="ym-button ym-warning" value="<spring:message code="button.save"/>" title="<spring:message code="button.save" />" />
如您所见,我有一个名为submitBtn和saveBtn的按钮。 submitBtn返回html,而saveBtn返回pdf。
当commitBtn被点击时,我希望正常提交表单并在当前窗口中加载响应。但是当saveBtn被命中时,我希望当前窗口保持原样,并在新的弹出窗口中加载pdf。
到目前为止,我已经尝试过......
$("#submitBtn").click(function(){
if ($("form[name='shortsAndOversDailyForm']").valid()) {
return true;
}
return false;
});
$("#saveBtn").click(function(){
if ($("form[name='shortsAndOversDailyForm']").valid()) {
// specify a unique target name
var target = 'windowFormTarget';
// open a new window and name it
window.open('', target, 'width=1400,height=900');
// set the target of the form to be
// the window name
this.setAttribute('target', target);
// allow the form to be submitted normally
return true;
}
return false;
});
问题在于,当我点击“保存”按钮时,它会打开一个没有内容的新窗口,并且pdf会在提交表单的窗口中加载。
有人可以帮忙解决这个问题,所以我可以在弹出窗口中加载pdf吗?
感谢
答案 0 :(得分:1)
this
是按钮,按钮没有目标,表单也是。
this.setAttribute('target', target);
所以你可能想要this.form
this.form.setAttribute('target', target);
或使用jQuery
$(this).closest("form").attr('target', target);
$("#saveBtn").click(function(){
var form = $("form[name='shortsAndOversDailyForm']");
if (form.valid()) {
var target = 'windowFormTarget';
window.open('', target, 'width=1400,height=900');
//this.form.setAttribute('target', target);
form.attr('target', target);
return true;
}
return false;
});