在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>
标签:asp.net, jQuery, postback