<script type="text/javascript" language="javascript">
function chk(frm) {
//debugger;
var et = document.getElementById("__EVENTTARGET");
var btn, btns;
if(et) btns = document.getElementsByName(et.value);
btn = (btns && btns.length > 0) ? btns[0] : btns;
if(btn) {
btn.value = '提 交';
btn.disabled =true;
document.getElementById('btnClean').disabled=true;
}
return true;
}
function markWhoSumbit(whoiseName)
{
var btn = document.getElementById("__EVENTTARGET");
if(!btn) {
btn = document.createElement("input");
btn.type="hidden";
btn.name="__EVENTTARGET";
btn.id="__EVENTTARGET";
document.forms[0].appendChild(btn);
}
btn.value=whoiseName;
}
</script>
onsubmit="return chk(this);"/OnClientClick="markWhoSumbit(this.name)"function chk(frm) {
//debugger;
var et = document.getElementById("__EVENTTARGET");
var btn, btns;
if(et) btns = document.getElementsByName(et.value);
btn = (btns && btns.length > 0) ? btns[0] : btns;
if(btn) {
btn.value = '提 交';
btn.disabled =true;
document.getElementById('btnClean').disabled=true;
}
return true;
}
function markWhoSumbit(whoiseName)
{
var btn = document.getElementById("__EVENTTARGET");
if(!btn) {
btn = document.createElement("input");
btn.type="hidden";
btn.name="__EVENTTARGET";
btn.id="__EVENTTARGET";
document.forms[0].appendChild(btn);
}
btn.value=whoiseName;
}
</script>
此种方法发现一个问题,有些javascript事件不能触发。
2.
<script language="javascript" type="text/javascript">
<!--
function disableOtherSubmit()
{ var obj = event.srcElement;
var objs = document.getElementsByTagName('input');
for(var i=0; i<objs.length; i++)
{
nms=objs[i].type.toLowerCase();
if((nms == 'submit')||(nms == 'reset')||(nms == 'button'))
{
objs[i].disabled = true;
}
}
}
//-->
</script>
<!--
function disableOtherSubmit()
{ var obj = event.srcElement;
var objs = document.getElementsByTagName('input');
for(var i=0; i<objs.length; i++)
{
nms=objs[i].type.toLowerCase();
if((nms == 'submit')||(nms == 'reset')||(nms == 'button'))
{
objs[i].disabled = true;
}
}
}
//-->
</script>
private void DisBtn()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }}");//保证验证函数的执行
sb.Append("if(window.confirm('确定要提交数据?')==false) return false;");//自定义客户端脚本
sb.Append("disableOtherSubmit();");// disable所有submit按钮
sb.Append(this.GetPostBackEventReference(this.btnSubmit));//用__doPostBack来提交,保证按钮的服务器端click事件执行
sb.Append(";");
btnSubmit.Attributes.Add("onclick", sb.ToString());
}
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }}");//保证验证函数的执行
sb.Append("if(window.confirm('确定要提交数据?')==false) return false;");//自定义客户端脚本
sb.Append("disableOtherSubmit();");// disable所有submit按钮
sb.Append(this.GetPostBackEventReference(this.btnSubmit));//用__doPostBack来提交,保证按钮的服务器端click事件执行
sb.Append(";");
btnSubmit.Attributes.Add("onclick", sb.ToString());
}
this.GetPostBackEventReference(this.btnSubmit);
if (!IsPostBack)
{
DisBtn();
}
这种方法就客服了第一种错误,两种方法都可以正常验证服务器端控件,对验证控件不产生影响。if (!IsPostBack)
{
DisBtn();
}
AJAX也可以做到,鉴于太过于简单,就不在这里留笔了。