在程序中获取window.confirm 的返回值

守城小轩 2008-03-01 05:21:12
我的成程序

×××××××××××××

....
....
....
上面执行了很多的语句
在这里弹出
Response.write("confirm('确定要删除吗?');");
我如何在后面的代码里判断这个值得返回是真还是假?

有人让我用Hidden1获得值 让后操作
但我还是没调同 希望有代码的同志发上来看看
谢谢 调了一下午 郁闷
...全文
1709 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teng_s2000 2008-04-30
  • 打赏
  • 举报
回复
good
wen01071081 2008-04-30
  • 打赏
  • 举报
回复
你试试
Response.Write("<script>var v=confirm('');alert(v);</script>")
游北亮 2008-04-30
  • 打赏
  • 举报
回复
下面的代码实现了你的目的,通过实现ICallbackEventHandler接口,到后台取数据库
没有问题就结帖吧
<%@ Page Language="C#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<script language="C#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
btn1.Style["display"] = "none";
}

public void Click1(object sender, EventArgs e)
{
Response.Write("提交了!");
}

// 实现接口
public string m_CallbackResult;
public string GetCallbackResult()
{
return m_CallbackResult;
}

public void RaiseCallbackEvent(string eventArgument)
{
// 这里做你的判断,比如select数据库
if(eventArgument == "you")
{
m_CallbackResult = "0";// 已经重名了
}
else
{
m_CallbackResult = "1";// 没有重名
}
}
</script>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function CallServer(){
var arg = document.getElementById("txt1").value;
<%=ClientScript.GetCallbackEventReference(this, "arg", "JsRecieve", null) %>
}

function JsRecieve(ret){
var continueFlg = false;
if(ret == "0"){
if(confirm("已经重名了,继续吗?")){
continueFlg = true;
}
}else
continueFlg = true;

if(continueFlg){
//这里写你要继续的代码
}
}

function SubmitCheck(){
CallServer();
return false;
}
</script>
</head>
<body>
<form id="Form1" runat="server">
<asp:TextBox ID="txt1" runat="server"></asp:TextBox>
<input type="button" onclick="SubmitCheck()" value="test" />
</form>
</body>
</html>
阿非 2008-03-01
  • 打赏
  • 举报
回复
up 一下楼上。

说一个不用xmlhttp的方法


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="jsToCs.aspx.cs" Inherits="jsToCs" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Literal ID="lit" runat="server" Text="新增编号:"></asp:Literal>
<asp:TextBox ID="txt" runat="server"></asp:TextBox>
<asp:Button ID="btn" runat="server" Text="增加" OnClick="btn_Click" />
<asp:Label ID='lbl' runat="server"></asp:Label>

<input type="hidden" name='hid' value='false' />

</div>
</form>
</body>
</html>



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class jsToCs : System.Web.UI.Page
{
protected string validate = "false";

protected void Page_Load(object sender, EventArgs e)
{
validate = Request["hid"] == null ? validate : Request["hid"];
}
protected void btn_Click(object sender, EventArgs e)
{
//验证一下是否是记录存在继续添加
if (validate == "false")
{
//判断记录是否存在
if (txt.Text != "1")
{
//不存在直接增加,成功之后提示
//lbl.Text = "增加成功";
ClientScript.RegisterStartupScript(GetType(), "success", "<script>alert('增加成功');</script>");
}
else
{
//记录存在,询问是否继续添加.不继续给出提示
ClientScript.RegisterStartupScript(GetType(), "onclick()", "<script language='javascript' type='text/javascript'> if(confirm('记录已存在,是否继续?')){document.getElementById('hid').value='true';document.getElementById('btn').click();}else{alert('增加取消'); } </script>");
//document.getElementById('lbl').innerText='增加取消';
}
}
else
{
//存在之后继续增加,成功之后给出提示
//lbl.Text = "继续增加成功";
ClientScript.RegisterStartupScript(GetType(), "success", "<script>alert('继续增加成功');</script>");
}


}
}

hchxxzx 2008-03-01
  • 打赏
  • 举报
回复
楼主的写法,问题 在于未对服务端及客户端有正确的认识.
服务端的语句执行是不会等待客户端执行完毕再紧接执行的,两者各行其是.

要实现这样的功能,并不复杂.可自行写脚本,使用xmlhttp的方式实现,如下:

<button onclick="return(f());" ...>

function f()
{
var url = "xxx.aspx?xxx=选择项";
var a = 调用xmlhttp至服务端判断是否重名;

if(a == 重名)
{
if(confirm("重名,是否覆盖?") == true)
{
return(true)
}
else
{
return(false);
}
}
else
{
//不重名,直接提交
return(true);
}
}
fullhouse 2008-03-01
  • 打赏
  • 举报
回复
只说说自己的思路,不一定能实现。
1,js侧读取数据库(好像ajax啥的可以做到~?),判断重名否,Confirm...
2,我曾经的做法:
btn Click后,vb侧读取数据库,判断,然后给Hidden赋值,
js侧的init函数中Confirm,ok的话,Hidden赋值,
Vb侧Page_Load中作Confirm为ok后的处理~~~

跳来跳去的。
你刚才说的在vb侧,Confirm,接着就取Confirm的值,
但那时,Confirm还没在客户端执行呢。能取得到?。
守城小轩 2008-03-01
  • 打赏
  • 举报
回复
其实我的程序流程比较简单

就是点击确定 然后select 数据库 看看有没有重名的

有就弹出个提示对话框 上面有个确定 取消

确定就继续下面的程序 取消就什么都不做

我就是想用js

其实我用其他的类是方法也实现了 但我感觉用js也能实现

兄弟们有好的div弹出也可以给我看看!
守城小轩 2008-03-01
  • 打赏
  • 举报
回复
考虑了 一下 决定用异步试试..........
第三只眼 2008-03-01
  • 打赏
  • 举报
回复

if(confirm("你确定要删除吗?"))
{
alert("t");
}
else
{
alert("d");
}

这样应该可以给hidden的textbox赋值
但不明白楼主为什么要转入后台获取

我曾经做过一个流程类似 先对数据进行判断处理 有问题 弹出一个确认框 如果确定 就提交页面

先服务端处理数据,在客户端确认,在转向服务端提交,但发现在IE7里面是个恶梦 要么出错,
要么就弹出一个系统的对话框 到现在没能解决,不知道有没有兄弟碰过
阿非 2008-03-01
  • 打赏
  • 举报
回复
获得值 之后你要做什么?
守城小轩 2008-03-01
  • 打赏
  • 举报
回复
to syeerzy 你说的方法我以前就用过

我现在要解决的是在程序执行当中
wangdetian168 2008-03-01
  • 打赏
  • 举报
回复
这个控制不了的的
只能用js判断的
syeerzy 2008-03-01
  • 打赏
  • 举报
回复
当然可以获得,不过也许你根本不需要这么做,如果你只是要在删除按钮上加个确认


只要在PageLoad时候

删除按钮id.Attributes.Add("onclick","return confirm('你确定要删除吗?')");


就ok了。




如果你一定要获取这个值,则
Response.Write("<script>这里写你的赋值语句</script>");

关键你要知道这一切发生的背后原理,不是随便乱试把他试对就行的,如果不行你要找到为什么不行比你去试到行更重要
守城小轩 2008-03-01
  • 打赏
  • 举报
回复
to jbnbear
有代码吗 我试验了 hidden.value的值是空的
山之魂2 2008-03-01
  • 打赏
  • 举报
回复
Response.write("Hiddenvalue return confirm('确定要删除吗?');");

Hiddenvalue 是隐藏的值

后面再获取它
阿非 2008-03-01
  • 打赏
  • 举报
回复
在cs 里获得confirm()的返回值 你可以不用考虑了.
你描述一下你的需求,我看能不能变向实现~

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧