2014-07-16 27 views
0

按鈕點擊我有以下看法頁面MVC 3動態按鈕的ID和處理jQuery的

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在下面的代碼,

$( '#BtnProceed')。點擊(函數()

按鈕IDS會BtnProceed0,BtnProceed1, BtnProceed2,BtnProceed3等,

回答

2

使用此代碼:

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

代替鄰F:

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

UPDATE:

,如果你需要,以獲取標籤值使用此代碼:

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

試過這個,但不工作..它甚至沒有擊中jQuery文件 – Govind

+0

那麼你需要改變你的編碼方式!也許可以在所有按鈕上添加一個類,然後執行你的代碼,點擊類,就像我在答案中所說的那樣。 –

+0

已經在所有的按鈕上有課。你的意思是獨一無二的班名嗎? – Govind

2

正如你已經添加CSS類,你應該使用class selector

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

注意:ID必須是唯一的。您多次使用id="TxtPremium",這會使您的HTML無效。

+0

試過這也..但不工作.. – Govind