剃刀按钮仅在条件为真时才会调用

时间:2015-10-06 16:06:08

标签: javascript asp.net-mvc razor

是否可以在满足特定条件时调用按钮上的onclick事件?

F.e。:如果函数调用返回数字>我想调用我的onclick事件。 0,类似于: if(checkNoOfRows()> 0)//调用onclickevent

是否可以内联执行此操作?

这是我的按钮onclick事件,我只想在满足某些条件时才打电话:

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

3 个答案:

答案 0 :(得分:1)

您应该删除内联事件并使用事件处理程序。从JavaScript事件处理程序,您可以检查存在多少行并有条件地运行您的函数。

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

答案 1 :(得分:1)

您可以在razor中执行此操作,但语法有点混乱。您需要<text>元素,以便它不会尝试将onclick解析为服务器上的代码:

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

然而,更好的方法可能是将url添加为属性,然后使用check将javascript中的事件绑定。您的模板将类似于:

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

然后在jQuery中使用jQuery:

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

答案 2 :(得分:1)

Jquery可以为你做出魔力:

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