当前位置: 代码迷 >> ASP.NET >> OnClientClick="return confirm('确定执行生成操作?');"(什么情况下需要加return?多谢)
  详细解决方案

OnClientClick="return confirm('确定执行生成操作?');"(什么情况下需要加return?多谢)

热度:10694   发布时间:2013-02-25 00:00:00.0
OnClientClick="return confirm('确定执行生成操作?');"(什么情况下需要加return?谢谢)
OnClientClick="return confirm('确定执行生成操作?');"
如果前面加return则验证控件不起作用。
加上return弹出后confirm对话框后,即使点“取消”
仍然执行服务器端代码。
如果才能既能高验证控件起作用,又能在点“取消”时不执行服务器端代码?
什么时候下需要加return?

------解决方案--------------------------------------------------------
验证控件? 能否改为js验证?
------解决方案--------------------------------------------------------
是要加了return,才会根据用户点确定还是取消来判断,决定是否执行后台代码的
------解决方案--------------------------------------------------------
在javaScript里,return有终止函数的执行和传递数值,两种功能。
return false 就是返回假值,从而终止了函数的执行
return true 就是返回真值,从而传递数值,继续执行函数
------解决方案--------------------------------------------------------
return true回发至服务器处理
return false不回发

return confirm返回的是bool型的值
------解决方案--------------------------------------------------------
这个问题我也遇到过.就是在一个客户端的submit 控件上 执行客户端函数 和 服务器端代码。

如:加不加 return 都会执行后台代码。 只有将其的客户端事件 放在 窗体的onsubmit()事件写才可解决。

我也一直在深究 这个问题......


------解决方案--------------------------------------------------------
我遇到过。顶下吧。
------解决方案--------------------------------------------------------
confirm会返回一个真假值(确定、取消),如果不加return,表单就会提交,否定会根据return的值判断表单是否提交
------解决方案--------------------------------------------------------
添加了return 以后要是选择了是就执行服务器端的事件,要是选择了否就不执行服务器端的事件。你要是不加return,那么不管点击什么都做服务器端事件
------解决方案--------------------------------------------------------
confirm会返回一个真假值(确定、取消),如果不加return,表单就会提交,否定会根据return的值判断表单是否提交
------解决方案--------------------------------------------------------
用ajax方法.
------解决方案--------------------------------------------------------
OnClientClick="return Del();" OnClick="btn_Click1" />
当击这个按钮时,自动先执行的客户端,再执行服务器端的.如果客户端返回的是false,那么服务器端对应的方法永远不会执行.这样就达到检测,只有通过才去执行服务器端的方法
Attributes.Add("onclick", "return confirm('');"); 
也可在代码里判断
如 
ClientScript.RegisterStartupScript(this.GetType(), "message", "<script language='javascript'>if(confirm(''))document.getElementById('Hf').value='1';else document.getElementById('Hf').value='0' ;</script>");
if(Hf.Value.Equals("1"))
{
}
else
{
}

------解决方案--------------------------------------------------------
验证控件是服务器端 js是客户端的 同时使用 这是什么需求?
------解决方案--------------------------------------------------------
楼上的,可以先执行js函数再执行服务器代码是肯定可以的`例如我们在注册的时候,判断用户名为空或合法,不可能都在服务器端判断吧
<script type="text/javascript">
function OnCilck()
{

var sname1=document.getElementById("sname").value;
var stel1=document.getElementById("stels").value;
if(sname1=="")
{
alert("姓名不能为空");
return false;
}
else if(stel1=="")
{
alert("联系方式不能为空");
return false;
}
else
{
return true;

}
</script>

调用:onclick="return js函数方法"
------解决方案--------------------------------------------------------
我记得有位高手讲过是含有多个INPUT的原因
------解决方案--------------------------------------------------------
这个我知道啊 客服端验证 服务器只要判断数据里面返回是否存在就可以了 比如用户名是否相同 存在就提示 不存在就执行 验证控件和js同时使用 到底用来干嘛呢
------解决方案--------------------------------------------------------
首先得搞清楚,不管是<asp:Button> 或者其他 服务器端 验证控件,他们最中在浏览器呈现的都是
  相关解决方案