2012-05-31 140 views
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 =” ../打印/'+ $('#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 
     } 

    }); 
+2

这与ASP.NET MVC无关。删除标签。 –

+0

这是一个mvc应用程序,这只是我的js文件中的代码 – Pomster

+0

为了将来的参考,如果可以的话,请将代码发布到jsfiddle.net上。它会帮助我们更快地进行调试。 –

回答

4

删除单击处理内部$(function() { ... });,并把它ouside

$(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来重定向是没有意义的。我想你将不得不重新考虑你想要达到的目标。

+0

其他方面不运行上面的两行window.location ...... – Pomster

+0

Ahhhh好吧谢谢我看到了,所以我不能提交,然后直接打印后,与此代码? – Pomster

+0

我在'if'中移动了'window.location'。正如我的回答所解释的,在提交表单后调用'window.location'是没有意义的。 –