博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP .Net提交时禁用Button
阅读量:4322 次
发布时间:2019-06-06

本文共 1625 字,大约阅读时间需要 5 分钟。

转自:http://gaterking.blog.51cto.com/69893/301691/

今天遇到一种小情况,想要在.net的服务器控件asp:button按下去时通过OnClientClick进行客户端处理,成功就提交到后台,提交后button变灰,disabled=true。但问题来了,在 OnClientClick="return check();",js函数check如果设置button..disabled = true,将不再提交。

 

上网查了很多资料,最后总结了一下,成功完成。

1、设置asp:button属性UseSubmitBehavior="false",这样button type将变成“button”,而不是默认的“submit”;

2、js函数中调用__doPostBack进行提交,这步很关键,__doPostBack可以让客户端的js触发服务器端的事件(页面会回发),网上很多的教程都没有这部,可能他们都不是在OnClientClick做验证处理,不需要return的原因。

下面这两段代码可以参考下。

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebTest.aspx.cs" Inherits="DoubleClick.WebTest" %
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  4.  
  5.  
  6. <html xmlns="http://www.w3.org/1999/xhtml" 
  7. <head id="Head1" runat="server"
  8.     <title>Untitled Page</title
  9.     <script type="text/javascript"
  10.  
  11.     function check() { 
  12.         if (document.getElementById("TextBox1").value == "") { 
  13.             alert("空"); 
  14.             return false; 
  15.         } else { 
  16.             document.getElementById("Button4").disabled = true; 
  17.             __doPostBack('Button4', ''); 
  18.             return true; 
  19.         } 
  20.     } 
  21.     </script
  22. </head
  23. <body
  24.     <form id="form1" runat="server" 
  25.     <div
  26.         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox
  27.         <asp:Button ID="Button4" UseSubmitBehavior="false" runat="server" Text="My" OnClientClick="return check();" OnClick="Button1_Click" /> 
  28.     </div
  29.     </form
  30. </body
  31. </html

 

    1. public partial class WebTest : System.Web.UI.Page 
    2.     { 
    3.         protected void Page_Load(object sender, EventArgs e) 
    4.         { 
    5.         } 
    6.  
    7.         protected void Button1_Click(object sender, EventArgs e) 
    8.         { 
    9.             Response.Write(TextBox1.Text); 
    10.             System.Threading.Thread.Sleep(2000); 
    11.         } 
    12.     } 

转载于:https://www.cnblogs.com/shiyh/p/8868621.html

你可能感兴趣的文章
学习swift开源项目
查看>>
[BZOJ 1293] 生日礼物
查看>>
Hadoop以及组件介绍
查看>>
1020 Tree Traversals (25)(25 point(s))
查看>>
第一次作业
查看>>
“==”运算符与equals()
查看>>
sqlite3
查看>>
软件工程:黄金G点小游戏1.0
查看>>
如何使用Powershell脚本监控Exchange2010(一) 数据库Mount状态的监控
查看>>
leetcode 144. Binary Tree Preorder Traversal
查看>>
理解 LINUX 的处理器负载均值(翻译)
查看>>
Struts2 流程原理
查看>>
Exp5 msf实践
查看>>
ElasticSearch简要总览
查看>>
浏览器的工作原理
查看>>
2.4.6 计算机语言表示算法
查看>>
Android SDK简介-读书笔记(一)
查看>>
android 构建数据库SQLite
查看>>
单工、半双工和全双工的定义
查看>>
Hdu【线段树】基础题.cpp
查看>>