单击“删除”按钮时,如果所选节点具有子节点,则会弹出确认框。否则,它不应该做任何事情。
现在,当我点击删除时,它只是在没有确认的情况下删除。
以下是代码:
<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>
答案 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
}
确保函数内部的逻辑是准确的,当试图获取未定义变量的属性时,webbrowsers通常会无声地失败。
在您的按钮定义中,您已撰写OnClientClick = "return childnode();"
,请尝试将其更改为OnClientClick="return childnode();"
,看看是否可以解决问题。
查看事件是否会触发,OnClientClick="alert(123);"
。
答案 1 :(得分:0)
您的功能return
并非所有部分都有。可能你的功能没有确认就存在了。检查您的逻辑,并确定如果您的if
语句之一未通过,您应该做什么。
答案 2 :(得分:0)
改变这个:
onclick="btn_delete_Click" OnClientClick = "return childnode();"
对此:
onclick="btn_delete_Click;return childnode();"