我在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等,
答案 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无效。