-2

我正在开发 MVC 应用程序。当我单击删除链接时,我想获取记录的 ID。在警报窗口中,我想显示我删除的记录 ID。

这个怎么做 ?

  @model PaymentAdviceEntity.CompanyType

     <script type="text/javascript">

         $(document).ready(function () {
             $('.remove').click(function () {   
                alert(?????);         
               $(this).parent().parent().remove();   


        });          

         });

     </script>          


     <div id='InvoiceList' class='divInvoiceList span12' style='margin-bottom:5px;margin-left:0px;'>
            @if (Model != null)
       {
               <span class="span3" style="margin-left:0px;">@Html.TextBox("InvoiceId", @Model.Name , new { @onkeypress = "return isNumberKey(event)", @onblur = "CalculateNetValue()", @style = "width:75%; text-align:right;", @class = "clsInvoiceId" })</span>  

<span class="span1" style="margin-left:0px;padding-top:6px;">@Html.HiddenFor(model=>model.Id) <a href='#' style='font-size:14px;text-decoration:none;font-weight:bold;' id='lnkRemove' class='clsRemove remove'>X</a></span>

       }

    </div>

我可以看到记录 ID 即 data-id = 4 但在运行应用程序后无法检查以下 HTML 代码。

<span class="span3" style="margin-left:0px;" data-id="4"><input class="clsInvoiceId valid" id="InvoiceId" name="InvoiceId" onblur="CalculateNetValue()" onkeypress="return isNumberKey(event)" style="width:75%; text-align:right;" type="text" value="asdasd"></span>
4

5 回答 5

1
$('.remove').click(function () {  
   var $ele = $(this).parent().parent();

   var id = $ele.attr("id");

   $ele.remove();   

   alert(id);                
}); 
于 2013-04-26T08:29:33.153 回答
1

如果您在谈论模型中的 ID 属性,那么您可以简单地将其添加到跨度内的隐藏字段中

<span class="span1" style="margin-left:0px;padding-top:6px;">@Html.HiddenFor(model=>model.ID) <a href='#' style='font-size:14px;text-decoration:none;font-weight:bold;' id='lnkRemove' class='clsRemove remove'>X</a></span>

并在客户端访问它

 $(document).ready(function () {
         $('.remove').click(function () {
           var id = $(this).closest("input").val();   
           $(this).parent().parent().remove();   

           alert(id);                
    });   

编辑

如果正在生成以下 HTML

<span class="span3" style="margin-left:0px;" data-id="4"><input class="clsInvoiceId valid" id="InvoiceId" name="InvoiceId" onblur="CalculateNetValue()" onkeypress="return isNumberKey(event)" style="width:75%; text-align:right;" type="text" value="asdasd"></span>

然后,您应该使用以下 jQuery 代码

$('.remove').click(function () {
    var id = $(this).parent().prev().attr("data-id");
    $(this).parent().parent().remove();
    alert(id);
});

你可以看到它在这里工作

于 2013-04-26T08:29:49.260 回答
1
$('.remove').click(function () {
     var removedId = $(this).closest('.clsInvoiceId').val();
     $(this).parent().parent().remove();   
     alert(removedId); 
}   
于 2013-04-26T08:29:59.993 回答
1

更新

如果您的 HTML 看起来像这样,

    <span class="span3" style="margin-left:0px;" data-id="4">
        <input class="clsInvoiceId valid" id="InvoiceId" name="InvoiceId" onblur="CalculateNetValue()" onkeypress="return isNumberKey(event)" style="width:75%; text-align:right;" type="text" value="asdasd">
    </span>
    <span class="span1" style="margin-left:0px;padding-top:6px;"> 
        <a href='#' style='font-size:14px;text-decoration:none;font-weight:bold;' id='lnkRemove' class='clsRemove remove'>X</a>
    </span>

然后,当您单击链接时,应该会得到data-id

$('.remove').live("click", function () {     
     var removedId = $(this).parent().prev().attr("data-id");
     $(this).parent().parent().remove();  
     alert(removedId);
});
于 2013-04-26T08:30:22.593 回答
1

您必须将 ID 放在 HTML 标记中的某个位置,因为一旦进入客户端,您将无法再访问该模型。

基本上你可以使用新的data-HTML5 属性:

<span class="span1" data-id="@Model.ID"> <-- this is the important bit
  <a href='#' id='lnkRemove' class='clsRemove remove'>X</a>
</span>

然后:

 $(document).ready(function () {
     $('.remove').click(function () {   
       alert($(this).parent().data("id")); // here we read the data-id...
       $(this).parent().parent().remove();   
     });          
 });
于 2013-04-26T08:32:09.053 回答