0

这个运行就像它非常好。

// Save, set state to finalized and Print
        $('#btnDialogPrint').click(function () {

            if ($('#chkFinal').is(':checked')) {
                $(function () {
                    $("#PrintDialog").dialog('close');    
                });
            }
            else {
                $('#chkFinal').attr('checked', true); // Set finalized. This checkbox is not visible its like a hidden field
                $('#btnSubmit').click(); // Save
            }

        });

这也运行良好:

window.location = '../Print/' + $('#SalesContractId').val();

但是当我把它们放在一起时,它只会运行

window.location = '../Print/' + $('#SalesContractId').val();

完整代码:

// Save, set state to finalized and Print
    $('#btnDialogPrint').click(function () {

        if ($('#chkFinal').is(':checked')) {

            $(function () {
                $("#PrintDialog").dialog('close');
                window.location = '../Print/' + $('#SalesContractId').val();    // Moves to ContractController Print
            });
        }
        else {
            $('#chkFinal').attr('checked', true); // Set finalized. This checkbox is not visible its like a hidden field
            $('#btnSubmit').click(); // Save
             window.location = '../Print/' + $('#SalesContractId').val();    // does not alow above code to execute 
        }

    });
4

1 回答 1

4

删除$(function() { ... });点击处理程序的内部并将其放在外面

$(function() {
    $('#btnDialogPrint').click(function () {
        if ($('#chkFinal').is(':checked')) {
            $("#PrintDialog").dialog('close');
            window.location.href = '../Print/' + $('#SalesContractId').val();
        } else {
            $('#chkFinal').attr('checked', true);                
            $('#btnSubmit').click();
        }
    });
});

$(function() { ... });意思是document.ready

话虽这么说,你似乎在打电话给一些人$('#btnSubmit').click();。请注意,如果这#btnSubmit实际上是某个表单的提交按钮(正如其 id 所暗示的那样),那么当提交表单时,它会自动将浏览器重定向到action表单的属性。所以window.location.href在这种情况下调用重定向是完全没有意义的。我想你将不得不重新考虑你想要实现的任何目标。

于 2012-05-31T12:51:37.103 回答