当前位置:编程学习 > C#/ASP.NET >>

如何实现:点击按钮先执行js判断语句,不通过,则不回发;通过再执行cs文件的保存方法

我要在按钮的onclick事件实现这样的功能:先执行客户端的js来进行合法性判断,如果判断不通过,则不用回发到服务器,如果判断通过,则回发到服务器,并且执行服务器的保存到数据库的方法,该怎么做啊?
在html代码里写好的一个事件如check()
然后在.cs的Page.PageLoad事件里写按钮名字.Attributes.Add("onclick","check()"); 
用这种方法,在判断不通过的时候,还是会回发到服务器上,怎么样才能实现上面我说的?各位高手请帮忙啊 --------------------编程问答-------------------- 用客户端的按钮来写 然后提交的时候调用__PostBack(xx,xx) 至于__postback去看生成的html页 有的页有的 好像要加隐藏控件的 --------------------编程问答-------------------- 这样的话,在客户端进行判断的代码应该怎么写啊,楼上的能不能给点详细的代码,多谢 --------------------编程问答-------------------- 服务器按钮OnClientClick="return delconfirm()" 例如删除
    <script language="javascript">
    function delconfirm()
{    
    if(条件)
    {
        return confirm("你确定删除吗?"); 
    }
    else
    {
        alert("你不可以删除"); 
        return false;
    }
}
</script> --------------------编程问答-------------------- 按照楼上说的不行啊,就算执行的是js里面的return false,又回发了一次,我这样试验的
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
            Response.Write("Hello");
    }
结果不管怎么样都会打出hello --------------------编程问答-------------------- 不能呀 我试了
        <script language=javascript>
        function delconfirm()
{    
var www="1";
    if(www==2)
    {
        return confirm("你确定删除吗?"); 
    }
    else
    {
        alert("你不可以删除"); 
        return false;
    }
}
    </script>
这样的话alert("你不可以删除"); 后页面根本就不提交!!!!!! --------------------编程问答-------------------- 测试用的按钮<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return delconfirm()" /> --------------------编程问答-------------------- 怪事,我原封不动拷贝你的代码,还是回发了,你在page_load加个判断语句看看 --------------------编程问答-------------------- 试了 没有问题 --------------------编程问答-------------------- 直接用confirm可以直接反回true或false;刚刚测试了

下面是cs代码

    protected void Page_Load(object sender, EventArgs e)
    {
        this.Button1.Attributes.Add("onclick", "return confirm('确认删除吗?')");
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //这里写你的删除数据的代码?
        Response.Write("删除成功!");
      } --------------------编程问答-------------------- 那是不是asp.net哪个地方要配置啊,楼上的高手能不能把整个文件都贴出来,包括cs文件 --------------------编程问答-------------------- 不用,你用我的方法试一下,行的 --------------------编程问答-------------------- 我试了呀,不管选确定还是取消,都打印出删除成功了,这就说明都执行了回发 --------------------编程问答-------------------- ===================
设置按钮的属性OnClientClick,里面写调用你那个JS函数的名字,比如delconfirm();

注意大小写。 --------------------编程问答-------------------- 用OnClientClick也是一样的 --------------------编程问答-------------------- 郁闷啊 --------------------编程问答-------------------- Page.PageLoad事件里写按钮名字.Attributes.Add("onclick","return check();");
在客户端的check事件中,不成功时一定要return false;肯定可以的。 --------------------编程问答-------------------- vs2005  用 OnClientClick="ruturn 函数名()"   
vs2003 : (StringBuilder 名称空间using System.Text;)
private void Page_Load(object sender, System.EventArgs e)
{
  StringBuilder sb = new StringBuilder("");     
  sb.Append("<script>");
  sb.Append("function del()");
  sb.Append("{");
  sb.Append("var ClientSelectedCount=0;");
  sb.Append("var checkObj=document.getElementsByName(\"chk\");");
  sb.Append(" for(var i=0;i<checkObj.length;i++)");
  sb.Append("{");
  sb.Append("if(checkObj[i].checked)");
  sb.Append("{");
  sb.Append("ClientSelectedCount=ClientSelectedCount+1;");
  sb.Append("}");
  sb.Append("}");
  sb.Append("if(ClientSelectedCount==0)");
  sb.Append("{");
  sb.Append("alert(\"请选择要删除的记录\");");
  sb.Append("return false;");
  sb.Append("}");
  sb.Append("if(ClientSelectedCount>0)");
  sb.Append("{");
  sb.Append("return confirm(\"您真的要删除所选项吗?\");");
  sb.Append("}");
  sb.Append("}");
  sb.Append("</script>");
   if (!Page.IsStartupScriptRegistered("del"))            //del 为js函数名
     Page.RegisterStartupScript("del", sb.ToString());
   if (!IsPostBack)
{
  del.Attributes.Add("onclick","return del();");  
         //del 按钮名称

          }
  }
上面的js是事例,替换成自己的JS就好了
不管是2003还是2005   调用时用  return 函数();          //一定要Return --------------------编程问答-------------------- confirm --------------------编程问答-------------------- 各位楼上的老大们,多谢你们的帮助,可是用这些方法,在我的机器上真的不行,我的是2005
我看了,asp.net button生成了input type=submit的按钮,这个按钮不管return false还是return true都会提交,还有没有其它方法阿 --------------------编程问答-------------------- asp.net 2.0 你直接拉一个button然后可以设置属性OnClientClick,
前面都有代码了,绝对行。 --------------------编程问答-------------------- onsubmit="return del();" --------------------编程问答-------------------- 自己再仔细看看 已经提供的肯定可以解决 --------------------编程问答-------------------- 正好要用到,学习一下了 --------------------编程问答-------------------- 在.cs的Page.PageLoad事件里写按钮名字.Attributes.Add( "onclick ", "return confirm('是否确定易做图?');"); 
   --------------------编程问答-------------------- Attributes.Add( "onclick ", " return check() ");   --------------------编程问答-------------------- 不是吧,
Attributes.Add("onclic","chekc(); return false;");

就可以了,我试过的. --------------------编程问答-------------------- 在js 条件语句里做如下设置
If(判断失败)
return;

就可以 了。。 --------------------编程问答--------------------
引用 27 楼 zzk87 的回复:
在js 条件语句里做如下设置
If(判断失败)
return false;

就可以 了。。

修改 --------------------编程问答-------------------- Attributes.Add( "onclick ", "return check() ");  --------------------编程问答-------------------- 楼主可以考虑不用asp的控件,直接使用<input type="button" value="button名称" onclick="check()" />
然后页面中一个<asp:linkButton id="lbtn_sure" runat="server" onclick="服务器端方法">

function check()
{
  if(条件通过)
{
 __doPostBack('lbtn_sure','');
}
}
这样就能在js条件通过的情况下调用服务器端的方法了 --------------------编程问答-------------------- 同时JS函数里面需要:
Function check() 
{
   if()
    {
         return false;
    }
}
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,