我有MVC4应用程序,具有保存,打印横向和打印肖像功能。 下面是包含事件的所有三个按钮的html代码。
<input type="submit" id="btnSave" value="Save" class="button-new red" onclick=" return SaveDetails();" style="width: 20px;" />
<input type="submit" id="btnExportLandscape" value="Print Landscape" onclick="return ExportForPrint(1);" class="button-new red" style="width: 110px;" />
<input type="submit" id="btnExportPortrait" value="Print Portrait" onclick="return ExportForPrint(2);" class="button-new red" style="width: 90px;" />
点击我有javascript功能
function SaveDetails()
{
....
if()
return true
}
function ExportForPrint(type)
{
if(type=1)
document.formCreateDetails.action="CreateDetails/ExportLandscape"; //Call to controller method
else if (type=2)
document.formCreateDetails.action="CreateDetails/ExportPortrait";
}
如果我直接点击保存而不点击打印纵向/横向按钮,则会触发SaveDetails的控制器方法。但是,如果单击“打印纵向/横向”,然后单击“保存”,则仍会触发“打印纵向/横向”事件。
答案 0 :(得分:1)
使用Jquery Id选择器我们可以像这样写
$(document).ready(function(){
$("#btnSave").on('click',function(){
// Do some thing.....
});
$("#btnExportLandscape").on('click',function(){
// Do some thing.....
});
$("#btnExportPortrait").on('click',function(){
// Do some thing.....
});
});
答案 1 :(得分:0)
您需要使用比较运算符(两次相等)来检查条件。
答案 2 :(得分:0)
你可以在帖子上只有一个动作,你可以检查这样的提交按钮值:
查看:
<input type="submit" id="btnSave" name="Save" value="Save" class="button-new red" onclick=" return SaveDetails();" style="width: 20px;" />
<input type="submit" id="btnExportLandscape" name="Save" value="Print Landscape" onclick="return ExportForPrint(1);" class="button-new red" style="width: 110px;" />
<input type="submit" id="btnExportPortrait" name="Save" value="Print Portrait" onclick="return ExportForPrint(2);" class="button-new red" style="width: 90px;" />
控制器:
[HttpPost]
public ActionResult Save(FormCollection form)
{
if(form["Save"].ToString() == "Print Landscape")
{
// do landscape work
}
else if(form["Save"].ToString() == "Save")
{
// save
}
else if(form["Save"].ToString() == "Print Portrait")
{
}
}
答案 3 :(得分:0)
感谢您的回答。
实际问题是,因为我正在分配文档操作来打印相关的控制器方法,而我在SaveDetails()方法中没有这样做。
document.formCreateDetails.action="CreateDetails/ExportLandscape";
或
document.formCreateDetails.action="CreateDetails/ExportPortrait";
我重新编写了我的代码,如下所示,用于保存事件并且有效。
function SaveDetails()
{
....
if()
{
document.formCreateDetails.action="CreateDetails/Index";
return true
}
}
感谢您的所有答案,我真的很感激。快乐的编码....