asp.net WebForm中Html服务器控件怎么通过js阻止事件回发,头疼,100分求解

asp.net WebForm中Html服务器控件如何通过js阻止事件回发,头疼,100分求解
想在按钮回发之前通过JS作前端验证,验证通过允许回发,验证失败阻止回发,这是一个很普通的需求,前端代码如下

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ButtonPostbackTest._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
<script type="text/javascript" src="Scripts/jquery-1.7.1.js"></script>
<script type="text/javascript">
    //初始化
    $(document).ready(function () {
        $("#btnWeb_S").click(function () {
            return check();
        });

        $("#btnInput_S").click(function () {
            return check();
        });

        $("#btnInputButton_S").click(function () {
            return check();
        });

        $("#btnInputSubmit_S").click(function () {
            return check();
        });
    });

    function check()
    {
        if ($("#noPostBack").prop("checked") == true) {
            alert("阻止回发");
            return false;
        }
        return true;
    }
      
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="noPostBack" name="noPostBack" type="checkbox" /> 阻止回发 <br /><br />

        <asp:Button ID="btnWeb_S" runat="server" Text="btnWeb_S" OnClick="btnWeb_S_Click"  /> &nbsp;

        <input id="btnInput_S" name="btnInput_S" type="button" runat="server" value="btnInput_S" onserverclick="btnInput_S_ServerClick"/> &nbsp;

        <button id="btnInputButton_S" name="btnInputButton_S" runat="server" onserverclick="btnInputButton_S_ServerClick">btnInputButton_S</button> &nbsp;

        <input id="btnInputSubmit_S" name="btnInputSubmit_S" type="submit" runat="server" value="btnInputSubmit_S" onserverclick="btnInputSubmit_S_ServerClick"/> &nbsp;
    </div>
        <asp:Label ID="lblStatus" runat="server" Text=""></asp:Label>
    </form>
</body>
</html>

测试发现,除了第一个web控件btnWeb_S,和最后一个type为submit的服务器控件btnInputSubmit_S可以通过js阻止回发外,中间2个html服务器控件btnInput_S、btnInputButton_S、 没办法通过js  return false来
阻止回发,查看源码可以看到,btnInput_S、btnInputButton_S的onclick事件被.net加上了__doPostBack调用

一种解决方案是替换onclick事件代码:

$("#btnInput_S").attr("onclick", "if(!check()) return false;" + $("#btnInput_S").attr("onclick"));

但这存在浏览器兼容性问题
100分求解决方案
------解决思路----------------------
试着在后台添加那个js的验证事件
------解决思路----------------------
或者你放弃ASP控件,所有代码都必须JS验证然后JS提交
这样用户如果禁止了JS脚本,正常功能也无法使用了