在的web页面中,一般都会要求在用户录入数据点击保存后,保存按钮变灰,不可点击,以防止用户重复提交数据。
在asp.net中,我想出有一个办法,大体思路如下:
放两个按钮,第一个就是普通的客户端input,第二个按钮是服务器端控件用于处理用户点击保存后执行的业务。
显示第一个input,将第二个服务器端按钮的display设为none。
在用户点击第一个input后,将其disabled掉,并在客户端触发第二个服务端按钮的点击事件。
代码:

Code
<input id="btnClick" type="button" class="btn70" value="保 存" onclick="validateInput()" />
<asp:Button ID="btSave" runat="server" Text="保 存" OnClick="btSave_Click" style="display:none">
</asp:Button>

Code
function validateInput()
{
var vtxtName = $("#txtName").val();
var vddlIdcParent = $("#ddlIdcParent").val();
var vddlInnerNetworkStructure = $("#ddlInnerNetworkStructure").val();
var vddlOuterNetworkStructure = $("#ddlOuterNetworkStructure").val();
var vddlPlanBusinessType = $("#ddlPlanBusinessType").val();
var errorStr = "";
if($.trim(vtxtName) == "")
errorStr += "***不能为空" + "\n";
if($.trim(vddlIdcParent) == "")
errorStr += "***不能为空" + "\n";
if($.trim(vddlInnerNetworkStructure) == "")
errorStr += "XXX不能为空" + "\n";
if($.trim(vddlOuterNetworkStructure) == "")
errorStr += "SS不能为空" + "\n";
if($.trim(vddlPlanBusinessType) == "")
errorStr += "DDD不能为空" + "\n";
if($("#txtModifyExplain").length > 0)
{
var vtxtModifyExplain = $("#txtModifyExplain").val();
if(!vtxtModifyExplain || $.trim(vtxtModifyExplain) == "")
{
errorStr += "修改原因不能为空\n";
}
}
if(errorStr != "")
{
alert(errorStr);
return false;
}
else
{
$("#btnClick").attr("disabled", true);
$("#btSave").click();
}
}我的代码中作了验证,一般的表单页面都有检验这一步,如果你也有,那你可以直接将这段代码拷过去用,呵呵。
注:我用了jquery,但直接裸用js,原理也是一样的。