获取控件然后触发就行了,服务器控件一样有效

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(),使其顺利跳转到后台运行后台的方法

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐