类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我的webform上有两个服务器控件,一个是textbox name,button button1,这个button1的onclick事件是判断数据库中是否有该name中写入的值,如果有的时候提示用户“已经有相应的记录了,是否要更新”,这个提示我想用javascript来写,如果用户选择“取消”,就跳转到别的页面,如果选择“确定”,就执行后面的数据库更新代码。
我是这样写的:
sql="select * from test where name="+name.Text+"";
OracleReader dr=config.read(sql);
if(dr.read())
{
Response.write("<script language=javascript>if(!confirm(已经有相同的记录了,点击[确定]可以更新,点击[取消]返回)){window.location=user.aspx}</script>");
//下面是数据库更新程序
}
请问为什么我无论是点击“确定”还是“取消”,都会执行下面的数据库更新代码。我的javascript那里写错了!谢谢!
网友回答:
要知道B/S模式可是请求响应,你不能要求客户端确认再执行后面代码啊!
此函数消除空格;
function Trim(str)
{
str=String(str);
var reg=/^\s*/; //消除前面的空格
str=str.replace(reg,"");
reg=/\s*$/; //消除後面的空格
str=str.replace(reg,"");
return str;
}
try:
Response.write("<script language=javascript>if(!confirm(已经有相同的记录了,点击[确定]可以更新,点击[取消]返回)){window.location=user.aspx}</script>");
Response.Flush();
你的程序逻辑有问题.
sql="select * from test where name="+name.Text+"";
OracleReader dr=config.read(sql);
if(dr.read())
{
Response.write("<script language=javascript>if(!confirm(已经有相同的记录了,点击[确定]可以更新,点击[取消]返回)){window.location=user.aspx}</script>");
//下面是数据库更新程序
}
错误是:Response.write(".....");程序会继续向下执行完,才将你的Response.write("...")写的东西加载到客户端IE中.
还有你这种实现好想不行.因为confirm是在页面提交时激发的.而你用Response.write 输出confirm后页面没有提交事件所以不会出现confirm提示.