2016-04-26 50 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()「操作。

相關問題