2016-04-26 53 views
2

其实我试图在点击一个按钮时添加一个对话框。但是在那个按钮的OnClick函数上,我已经调用了一个控制器的函数。这个HTML代码是:两个onClick函数在一个按钮中,想要发生一个接一个的点击函数

<div class="pro-btn btn"> 
         @{ 
<input type="button" id="[email protected]" class="button-1"value="@T("Nopaholics.Auction.AuctionDetailView.PlaceBid")" data- productid="@Model.ProductId" 
onclick="Auction.placeBid('@Url.RouteUrl("Nopaholics.Auction.PlaceBid", new { productId = Model.ProductId, auctionId = Model.AuctionId })', '#product-details-form');return false;" /> 
} 
</div> 

现在在写下面的jQuery之后,两个点击功能都在同时工作。但是我想先点击对话框的确定​​按钮和要调用的控制器动作来确认。

<script> 
$('#place-bid-button-'[email protected]()).click(function(e){ 

$("#dialog-confirm").dialog({ 
    resizable: false, 
    height:160, 
    modal: true, 
    buttons: { 
     "OK": function() { 
      $(this).dialog("close"); 
      $("#[email protected]()").click(); 
      }, 
      Cancel: function(e) { 
       $(this).dialog("close"); 
       $('#place-bid-button-'[email protected]()).die(); 
       console.log(e); 
       //return false; 
       //e.preventDefault(); 
      } 
     } 
    }); 
}); 
</script> 

任何帮助,将不胜感激。在此先感谢..

+0

的按钮,在' “OK” 删除'onclick'和运行代码:function(){$ (this).dialog(“close”); //在这里调用Auction.placeBid ...' –

+1

需要执行的2种方法是什么?因为我看到onclick =“Auction ..”这不是一个剃须刀代码(@缺失)。创建一个js方法并在行$(this).dialog(“close”)后面调用它。 –

回答

2

您不需要多重功能。我会建议也完全摆脱内联点击处理程序。

您可以使用data-*前缀自定义属性存储url,该属性可以使用HTMLElement.dataset属性获取。

HTML

@{ 
    <input type="button" class="place-bid-button button-1" 
      value="@T("Nopaholics.Auction.AuctionDetailView.PlaceBid")" 
      data-url="@Url.RouteUrl("Nopaholics.Auction.PlaceBid", new { productId = Model.ProductId, auctionId = Model.AuctionId })" 
      data-form="#product-details-form"/> 
} 

然后你可以用下面的脚本

//Bind click hndler using a common class 
$('.place-bid-button').click(function(e) { 
    //Store the refrence in a variabled 
    var self = this; 

    $("#dialog-confirm").dialog({ 
     resizable: false, 
     height: 160, 
     modal: true, 
     buttons: { 
      "OK": function() { 
       //Cal the method with url and form name 
       Auction.placeBid(self.dataset.url, self.dataset.form); 
       $(this).dialog("close"); 

      }, 
      Cancel: function(e) { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 
+0

我想你的方法,但在按钮按下,它并没有表现出任何的变化 –

+0

没有错误,但是按钮CLIK不显示任何效果 –

+0

@Bijaykushawaha,我还修改了HTML,您使用确切的代码 – Satpal

0

写上都功能单一onclick属性,如:onclick="firstFunction();SecondFunction();"

如果您在了firstFunction then.The有confirm/alertconfirm/alert功能停止代码的执行,直到它的dismissed.This意味着secondFunction会当firstFunction确认关闭时调用。

0

你想对点击按钮执行一些操作,只有当用户点击确认对话框确定, 所以你需要调用'你需要采取的行动方法'/行动代码(你需要采取)点击' OK“按钮,而是再次显式调用”click()“操作。

相关问题