点击事件触发另一个按钮事件

时间:2014-04-10 14:59:48

标签: jquery asp.net-mvc-4 controllers

我有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的控制器方法。但是,如果单击“打印纵向/横向”,然后单击“保存”,则仍会触发“打印纵向/横向”事件。

4 个答案:

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

感谢您的所有答案,我真的很感激。快乐的编码....