删除不要求确认

时间:2011-12-16 15:03:35

标签: c# javascript asp.net

单击“删除”按钮时,如果所选节点具有子节点,则会弹出确认框。否则,它不应该做任何事情。

现在,当我点击删除时,它只是在没有确认的情况下删除。

以下是代码:

  <asp:Button ID="btn_delete" runat="server" Height="32px" 
        onclick="btn_delete_Click"  OnClientClick = "return childnode();"                              
        Text="Delete" Visible="False"  />  

    <script type="text/javascript">
        function childnode() {
            var treeViewData = window["<%=nav_tree_items.ClientID%>" + "_Data"];

            var selectedNode = document.getElementById(treeViewData.selectedNodeID.value);
            if (selectedNode.childNodes.length > 0) {
                return confirm("heloo");
            }
            return false;
        }                                        
    </script>

3 个答案:

答案 0 :(得分:0)

如果您不想在某些情况下按下按钮,则需要从函数返回false。目前,您只在调用confirm时从函数返回一个值。

如果其中一个或两个if条件都失败,如果您不希望事件冒泡激活按钮/发送表单,请添加return false


修改现有代码

function childnode() {
    var treeViewData = window["<%=nav_tree_items.ClientID%>" + "_Data"];
    if (treeViewData.selectedNodeID.value != "") {
        var selectedNode = document.getElementById(treeViewData.selectedNodeID.value);
        if (selectedNode.childNodes.length > 0) {
            return confirm("heloo");
        }   

        return false; // don't send form                                             
    }

    return false; // don't send form
}  

是否仍然出现故障?

  1. 确保函数内部的逻辑是准确的,当试图获取未定义变量的属性时,webbrowsers通常会无声地失败。

  2. 在您的按钮定义中,您已撰写OnClientClick = "return childnode();",请尝试将其更改为OnClientClick="return childnode();",看看是否可以解决问题。

  3. 查看事件是否会触发,OnClientClick="alert(123);"

答案 1 :(得分:0)

您的功能return并非所有部分都有。可能你的功能没有确认就存在了。检查您的逻辑,并确定如果您的if语句之一未通过,您应该做什么。

答案 2 :(得分:0)

改变这个:

onclick="btn_delete_Click"  OnClientClick = "return childnode();"

对此:

onclick="btn_delete_Click;return childnode();"