jquery表单在新窗口中提交

时间:2014-01-22 01:26:36

标签: jquery

我是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吗?

感谢

1 个答案:

答案 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;
});