动态按钮ID和句柄按钮单击jquery

时间:2014-07-16 07:36:53

标签: jquery html asp.net-mvc-3

我在MVC 3中有以下视图页面

  for (int i = 0; i < Model.Count(); i++)
    {
    <li>Premium:@Html.Label(Model.ToList()[i].Premium, new Dictionary<string, object> { { "id", "TxtPremium" }, { "name", "[" + i + "].Premium" }, { "Class", "bold" } })

    @Html.ActionLink("Proceed", "Policy", "PolicyUC", new { policyNumber = Model.ToList()[i].ReferenceNumber }, 
    new { id = "BtnProceed"+i, name = "BtnProceed", @class = "gridButtons" })
    }

在浏览器中生成如下视图,

<label class="bold" id="TxtPremium" name="[0].Premium">
<a name="BtnProceed" class="gridButtons" id="BtnProceed0" href="somevalue">

<label class="bold" id="TxtPremium" name="[1].Premium">
<a name="BtnProceed" class="gridButtons" id="BtnProceed1" href="somevalue">

我的jquery如下,

jQuery().ready(function domReady($) {
    $('.topbar_menu a').removeClass("active");
    $('.topbar_menu #homeLi').addClass('active'); 


    $('#BtnProceed').click(function () {       
        var currDate = new Date();
        $('#TxtEffectiveDate').removeClass("outLineRed");
        $('#errorMsg').hide();
        $('#spMsgError').hide();
        $('#MsgSucc').attr("style", "background-color:#dfe5e6;");

        if (currDate < $("#TxtEffectiveDate").val()) {
            $('#TxtEffectiveDate').addClass('outLineRed');
            $('#spMsgError').show();
            $('#spMsgError').html(""Your effective date has already passed.");
            $('#MsgSucc').attr("style", "background-color:White;!important;");
            return false;
        }
        else {
            $('#TxtEffectiveDate').removeClass("outLineRed");
            $('#errorMsg').hide();
            $('#spMsgError').hide();
            $('#MsgSucc').attr("style", "background-color:#dfe5e6;");
        }
    });

});

按钮id是动态生成的,我需要将id传递给jquery,这样点击的按钮就会执行jquery。

那么,如何在下面的代码中传递id,

  

$(&#39;#BtnProceed&#39;)。点击(function()

按钮ID将是BtnProceed0,BtnProceed1,BtnProceed2,BtnProceed3等,

2 个答案:

答案 0 :(得分:2)

使用此代码:

$(document).on('click','#BtnProceed',function (){});

而不是:

$('#BtnProceed').click(function (){});

更新:

如果您需要获取标签值,请使用以下代码:

$(document).on('click','.gridButtons',function (){
    var labelVal=$(this).prev().text();
});

答案 1 :(得分:2)

由于您已经添加了CSS类,因此您应该使用class selector

$(document).on('click', '.gridButtons', function () {
    var id = this.id; //Get button ID
});

注意:ID必须是唯一的。您多次使用id="TxtPremium",这会使您的HTML无效。