我在C#的中继器中有一个复选框模板字段

使用ASP.NET C#绑定转发器

<asp:Repeater ID="rpt_detail" runat="server">
    <ItemTemplate>
        <table>
            <tr>
                <td style="width: 10%; padding-top: 10px;">
                    <input type="checkbox" id="selectit" name="selectit" value='<%# Eval("mdID") %>' />
                </td>
                <td>
                    <asp:Label ID="mdID" runat="server" Visible="false" Text='<%# Eval("mdID") %>'></asp:Label>
                </td>
                <td>
                    <asp:Label ID="lbl_xprice" runat="server" Text='<%# Eval("mdPrice") %>'></asp:Label>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:Repeater>


和javascipt

<script>
    function aaaaa() {
        var selectit = $('input[name="selectit"]').val();

        $.ajax({
            url: "ajaxservice/getinchar.aspx",
            type: 'POST',
            data: { selectw: selectit },
            success: function (result) {
                $("#testview").html(result);
            }
        });
    }
</script>


如何获得复选框的检查值?

最佳答案

您可以使用jQuery循环中继器中的所有复选框。

<script type="text/javascript">
    function getCheckBoxValues() {
        $('#myRepeater input[type="checkbox"]').each(function () {
            if ($(this).prop('checked') == true) {
                alert($(this).val());
            }
        });
    }
</script>


但是,要使其正常工作,您必须使用具有唯一ID的<div>包装中继器。

<div id="myRepeater">
    <asp:Repeater ID="rpt_detail" runat="server"></asp:Repeater>
</div>


与解决方案并没有真正的关系,但是您在Repeater的复选框中得到了重复的ID(selectit)。最好使用asp.net CheckBox控件。

而且,您最好在中继器之外设置<table> </table>

<table id="myRepeater">
    <asp:Repeater ID="rpt_detail" runat="server">
        <ItemTemplate>
            <tr>
                <td> content... </td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>
</table>

09-30 15:58
查看更多