按钮单击上的多删除复选框不能按要求工作

时间:2014-12-26 06:37:02

标签: javascript jquery asp.net checkbox

我有一个grdiview,其中添加了Multi-delete功能。请参阅代码供您参考: -

<script type="text/javascript">
    function ValidateAll() {
        var chkselectcount = 0;
        var gridview = document.getElementById('<%= grdTeacherProfile.ClientID %>');
        for (var i = 0; i < gridview.getElementsByTagName("input").length; i++) {
            var node = gridview.getElementsByTagName("input")[i];

            if (node != null && node.type == "checkbox" && node.checked) {
                chkselectcount = chkselectcount + 1;
            }
        }
        if (chkselectcount == 0) {
            alert("Please select atleast One CheckBox");
            return false;
        }
        else {
            ConfirmationBox();
        }
    }
    function ConfirmationBox() {
        var result = confirm("Are you sure, you want to delete the Users ?");
        if (result) {
            return true;
        }
        else {
            return false;
        }
    }
</script>

另见html按钮: -

<asp:Button ID="btnDelete" runat="server" CausesValidation="false" CssClass="btn btn-danger" Text="Delete" OnClick="btnDelete_Click" OnClientClick="javascript:return ValidateAll();" />

问题是, 当我选中复选框并点击删除按钮时,它会要求确认。当我点击取消时,它仍会删除Gridview以及sql table中的行。

我应该怎样做才能正常工作。 ?请建议

1 个答案:

答案 0 :(得分:1)

我认为你需要使用

return ConfirmationBox();

而不是

ConfirmationBox();

所以你的代码变成了

function ValidateAll() {
    var chkselectcount = 0;
    var gridview = document.getElementById('<%= grdTeacherProfile.ClientID %>');
    for (var i = 0; i < gridview.getElementsByTagName("input").length; i++) {
        var node = gridview.getElementsByTagName("input")[i];

        if (node != null && node.type == "checkbox" && node.checked) {
            chkselectcount = chkselectcount + 1;
        }
    }
    if (chkselectcount == 0) {
        alert("Please select atleast One CheckBox");
        return false;
    }
    else {
        return ConfirmationBox();
    }
}

您需要从javascript:移除OnClientClickOnClientClick="return ValidateAll();"