javascript 为什么自动调用后台代码???

来源:百度知道 编辑:UC知道 时间:2024/04/27 14:59:38
<a href='javascript:Del()'>删除</a>
<script type="text/javascript" language="JavaScript">
function Del()
{
if(confirm("确定删除?"))
{
var i = '<%=deleteDataInfo() %>';
if(i>0)
{
alert("删除成功!");
location.href="aaa.aspx";
}
else
{
alert("删除失败!");
}
}
}
</script>

public int deleteDataInfo()
{
string sql = "delete from aaa where id = " + Request.QueryString["id"];
return DBHelper.ExecuteCommand(sql);
}

为什么页面刚加载的时候就把数据删除了?也没有出任何提示“确定删除?”、“删除成功!”
没听太明白!!!呵呵,菜鸟
应该怎么写才对呢?

一个网页文件,也就是WEB程序,所以服务器要先解析,把ASP脚本语言解析完了,然后根据你的内容输出到浏览器,这时是单纯的HTML和JS脚本语言,所以你的 服务器变量 <%=deleteDataInfo() %>已经解析成相应的数字,根据你的情况,这个数字应该大于 0 ,你可以先把<%=deleteDataInfo() %>定义在别的地方,然后你在调用函数的时候传进来 :

var x = "<%=deleteDataInfo() %>";

Del(x);//此时 Del函数里的 i == x;

ar i = '<%=deleteDataInfo() %>';
看见这行代码了吗,只要页面一加载,这个方法就执行了,所以一开始就删除了。

也就是说,页面加载完毕,里面的代码就是:
var i = '0'; //也许是别的数字

这个要实现的效果和你一样 你可以参考下
http://zhidao.baidu.com/question/96234700.html

因为你的函数是以值的形式出现的,页面加载时会把JS加载进来,并把里有值的地方都运行取出数来,并不是你触发函数时才运行的.