利用jQuery给带有postback的asp:button添加前置onclick事件

在ASP.NET开发中,时常会遇到提交按钮是带有postback的,页面会自动给按钮生成类似onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$main$btnSave", "", true, "", "", false, false))"的代码,如果想在提交之前添加类似表单验证的事件,会比较麻烦,因为DOM属性中的onclick事件会先执行,需要进行适当处理。

下面是个HTML的Sample,可以说明此问题。

<input type="button" id="j_testButton" value="假定这是一个包含onclick属性的按钮" onclick="javascript:alert('这是DOM属性中的onclick事件');" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
	var $btn = $("#j_testButton"),
		_orgEvent = $btn[0].getAttribute("onclick").replace("javascript:","");
	$btn.attr("onclick", null)
		.removeAttr("onclick")
		.bind("click", function() {
			alert("这是jQuery绑定的前置onclick事件");
			eval(_orgEvent);
		});
});
</script>

点击查看演示

标签:, ,

?????