繁体   English   中英

删除不要求确认

[英]Delete does not ask for confirmation

单击“删除”按钮时,如果所选节点具有子节点,则将弹出确认框。 否则,它什么也不做。

现在,当我单击删除时,它只是删除而没有确认。

这是代码:

  <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>

如果在某些情况下不希望按下按钮,则需要从函数返回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. 确保函数内部的逻辑是正确的,当尝试获取未定义变量的属性时,网络浏览器通常会静默失败。

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

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

您的函数并没有全部return 可能您的功能存在而未确认。 查看您的逻辑,并确定如果您的if语句之一未通过,您想做什么。

更改此:

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

对此:

onclick="btn_delete_Click;return childnode();"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM