2017-04-02 68 views
0

我有這兩個元素彼此相鄰。 隱藏字段包含記錄的ID。當用戶選中/取消選中複選框時,我應該能夠檢索記錄的ID如何獲取點擊複選框旁邊隱藏字段的值?

<asp:CheckBox ID="ckEdit" runat="server" CssClass="ckEditClass" /> 
<asp:HiddenField ID="hfEdit" Value='<%# Eval("ID") %>' runat="server" /> 

這就是我想要做的事:

$(".ckEditClass").on("click", function() { 
    var hidden = $(this).parent().parent().children(":hidden") 
    alert(hidden.val()); 
}) 

我越來越undefined

EDIT

上面的代碼是從Visual Studio。但是,當我查看F12時,我看到圍繞該複選框的<span>。希望這些信息會有所幫助。

<td> 
    <span class="ckEditClass"> 
      <asp:CheckBox ID="ckEdit" runat="server" CssClass="ckEditClass" /> 
    </span> 
    <asp:HiddenField ID="hfEdit" Value='<%# Eval("ID") %>' runat="server" /> 
</td> 

回答

1

您可以使用jQuery closest() & find()方法做到像以下。

$(".ckEditClass:checkbox").on("click", function() { 
 
    var hidden = $(this).closest('td').find(':hidden'); 
 
    alert(hidden.val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<table> 
 
    <tr> 
 
    <td> 
 
     <span class="ckEditClass"> 
 
      <input type="checkbox" id="ckEdit" class="ckEditClass"/> 
 
     </span> 
 
     <input type="hidden" id="hfEdit" value="10" /> 
 
    </td> 
 
    </tr> 
 
</table>

+0

現在,我該如何訪問複選框本身,因爲它似乎像'this'代表'span',而不是包裹複選框。 – Richard77

+0

查看最新的答案。選擇器改爲'$(「。ckEditClass:複選框」)'。 @ Richard77 – Azim

0

你可以試試這個方法

$(".ckEditClass").on("click", function() { 
    var hidden= $(this).next(input[type="hidden"]); 
    alert(hidden.val()); 
}); 

它會檢查給定類型的下一個組成部分,將其返回。然後你可以提醒它的價值。

希望它可以幫助

相關問題