获取控件然后触发就行了,服务器控件一样有效
javascript:
document.getElementById("ButttonID").click()
jQuery:
$("#ButttonID").click();
如果按钮有js和后台两个按钮触发事件,且需要先触发js,等js结束了才执行后台的方法你还可以这样:
HTML:
<asp:Button runat="server" name="Button1" id="Button1" text="点我!" OnClientClick="javascript:return JS_Click();" onclick="houtai_Click" />
<input type="hidden" name="bool" id="bool" value="一个工具控件" />
JS:
function JS_Click() {
if (document.getElementById("bool").value != "一个工具控件") {
return true;
} else {
/*你要执行的代码放这里*/
document.getElementById("bool").value="一个完成任务的工具控件"
document.getElementById("Button1").click()
return false;
}
};
原理很简单,就是触发按钮点击事件的时候 js 直接给它一记return false; 强行终止他去后台,等js的方法慢慢悠悠的执行完,在js里第二次触发按钮的点击事件,这时js的方法已经执行完了,一路绿灯送去后台执行后台的方法
如果觉得“哎呀!居然还要创建控件!也太麻烦了!!”,你还可以这样:
HTML:
<asp:Button runat="server" name="Button1" id="Button1" text="点我!" OnClientClick="javascript:return JS_Click(false);" onclick="houtai_Click()" />
JS:
function Method() {
/*你要执行的代码放这里*/
JS_Click(true);
};
function JS_Click(bool) {
if (bool) {
return true;
}else{
/*阻止表单提交*/
event.preventDefault();
Method();
}
};
原理也很简单,在按钮里传入false运行JS_Click()让其阻止表单提交并运行JS的方法,在JS的方法运行完成之后传入true运行JS_Click(),使其顺利跳转到后台运行后台的方法