我需要禁用提交按钮,以防止双重发布。
我将以下属性添加到asp:按钮:
#include <beast/websocket.hpp>
#include <beast/buffers_debug.hpp>
#include <boost/asio.hpp>
#include <iostream>
#include <string>
int main()
{
// Normal boost::asio setup
std::string const host = "echo.websocket.org";
boost::asio::io_service ios;
boost::asio::ip::tcp::resolver r(ios);
boost::asio::ip::tcp::socket sock(ios);
boost::asio::connect(sock,
r.resolve(boost::asio::ip::tcp::resolver::query{host, "80"}));
using namespace beast::websocket;
// WebSocket connect and send message using beast
stream<boost::asio::ip::tcp::socket&> ws(sock);
ws.handshake(host, "/");
ws.write(boost::asio::buffer("Hello, world!"));
// Receive WebSocket message, print and close using beast
beast::streambuf sb;
opcode op;
ws.read(op, sb);
ws.close(close_code::normal);
std::cout <<
beast::debug::buffers_to_string(sb.data()) << "\n";
}
仅当首次单击表单的所有控件都有效时,此方法才有效。但是,如果asp:RequiredFieldValidor中的任何一个失败,则该按钮将被禁用,直到刷新页面为止。
答案 0 :(得分:2)
使用以下代码:
OnClientClick="if (Page_ClientValidate()) { this.disabled='true';this.value='Please wait ...'}"
<强>解释强>
Page_ClientValidate()
此方法用于asp.net客户端验证。因此,如果您在客户端页面验证,则只禁用您的文本框。