Textbox用JS添加了onblur事件,怎么才能在关闭页面时,不触发失去焦点事件?
<script language="javascript" type="text/javascript">String.prototype.Trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
//$d("").value.Trim()
function checkEmpty( objID,msg ) {
var obj = document.getElementById(objID);
if (obj.value.Trim() == "") {
alert(msg);
return;
}
}
</script>
<asp:TextBox ID="txtRoleID" runat="server" onblur="checkEmpty('txtRoleID','请输入角色ID');" >
源码如上,当焦点在textbox上时,点关闭,还是弹出提示框;在关闭页面时,怎么样才能不弹出提示框? --------------------编程问答-------------------- 估计是LZ用了服务器控件,生成页面的时候他的ID会改变掉,所以没有达到预想的效果
用这个试试
--------------------编程问答-------------------- 是用的服务器控件。
<asp:TextBox ID="txtRoleID" runat="server" onblur="checkEmpty('<%=txtRoleID.ClientID %>','请输入角色ID');" >
改成如下代码:在关闭窗口时,还是会弹出提示
function checkEmpty( objID,msg ) {
// var obj = document.getElementById(objID);
var obj = document.getElementById('<%=txtRoleID.ClientID %>')
if (obj.value.Trim() == "") {
alert(msg);
return;
}
} --------------------编程问答-------------------- 貌似和服务器或客户端控件没关系,这个事件已经触发了,现在我是要在关闭窗口时,不触发事件,不弹出消息。 --------------------编程问答-------------------- 我这边怎么没提示呢,一样的代码,关闭的时候没触发事件啊,焦点在textbox上的 --------------------编程问答-------------------- 这样弄就行了
--------------------编程问答-------------------- 呵呵,照着我上面那样弄就行了,在body里面加个onBeforeUnload事件就OK了,测试过了,可以的 --------------------编程问答-------------------- 可以了,非常感谢楼上“binpo1 ”
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
String.prototype.Trim = function () {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
//$d("").value.Trim()
function close() {
var remo = document.getElementById('txtRoleID');
remo.removeAttribute('onblur');
}
function checkEmpty(objID, msg) {
var obj = document.getElementById(objID);
if (obj.value.Trim() == "") {
alert(msg);
return;
}
}
</script>
</head>
<body onBeforeUnload="close()">
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtRoleID" runat="server" onblur="checkEmpty('txtRoleID','请输入角色ID');" ></asp:TextBox>
</div>
</form>
</body>
</html>
补充:.NET技术 , ASP.NET