2015-10-06 37 views
0

僅當滿足某些條件時纔可以在按鈕上調用onclick事件嗎?僅當條件爲真時,剃鬚刀按鈕才能點擊電話

F.e:我想打電話給我的onclick事件,如果函數調用返回數> 0,是這樣的:如果 (checkNoOfRows()> 0)//調用onclickevent

是否有可能做到這一點在線?

這裏是我的按鈕onclick事件,我想只有當某些條件得到滿足致電:

<button id="btnExportXLSPropsChild" onclick="location.href='@Url.Action("exportUserProp", "UserManagement", new { typeToExport = "CHILD" })'">Export</button> 
+0

你想在服務器或客戶端上進行檢查? –

+0

我想對客戶端進行檢查。 – FrenkyB

回答

1

您可以在razor中執行此檢查,但語法有點混亂。您需要<text>元素,因此它不會嘗試解析您的onclick作爲服務器上的代碼:

<div @if (true) { <text>onclick="test"</text> }></div> 

然而,更好的方法很可能是將URL添加爲一個屬性,然後在綁定的事件與檢查的JavaScript。然後,您的模板將是這樣的:

<button id="btnExportXLSPropsChild" data-url="@Url.Action("exportUserProp", "UserManagement", new { typeToExport = "CHILD" })">Export</button> 

然後在使用jQuery的JavaScript:

$("#btnExportXLSPropsChild").on('click', function(){ 
    if(checkNumberOfRows() > 0){ 
     var url = $(this).data('url'); 
     window.location.href = url; 
    } 
} 
+0

作品像一個魅力:)謝謝。 – FrenkyB

+0

是否可以添加一些參數到網址?我的參數會來自隱藏的領域,所以我可以做一些事情:validFrom = $('hiddenValidFrom')。val() – FrenkyB

1

您應該刪除的行內事件和使用的事件處理程序來代替。從JavaScript事件處理程序中,您可以檢查有多少行存在並有條件地運行您的函數。

$("#btnExportXLSPropsChild").on('click', function(){ 
    if(checkNumberOfRows() > 0){ 
     //code goes here 
    } 
} 
+0

好的,但是如何調用@ Url.Action? – FrenkyB

+1

剛看到這個,對不起。 我建議把url action作爲數據屬性放在元素上,並用jQuery從元素中抓取它,或者直接將url寫入一個javascript變量並將位置設置爲變量。 – FullMetalEngineer

1

jQuery的可以爲你做的魔力:

$('button').click(function(){ if(condition > 0) { windown.location.href = '@Url.Action("Action","Controller")'; } });