Javascript 当有';页面上有自定义验证程序吗?

Javascript 当有';页面上有自定义验证程序吗?,javascript,.net,asp.net,customvalidator,aspbutton,Javascript,.net,Asp.net,Customvalidator,Aspbutton,我有两个问题-首先,当同一页面上有自定义验证器时,.net为什么为asp按钮呈现javascript onclick事件,其次,我如何摆脱javascript 当javascript关闭时,它工作正常,所以我不知道它的意义是什么。下面是一个小示例: <form id="form1" runat="server"> <asp:Button ID="Button1" OnClick="Button1_Click" Text="test" runat="server" /&

我有两个问题-首先,当同一页面上有自定义验证器时,.net为什么为asp按钮呈现javascript onclick事件,其次,我如何摆脱javascript

当javascript关闭时,它工作正常,所以我不知道它的意义是什么。下面是一个小示例:

<form id="form1" runat="server">

    <asp:Button ID="Button1" OnClick="Button1_Click" Text="test" runat="server" />

    <asp:CustomValidator ID="CustomValidator1" runat="server" 
        OnServerValidate="Stuff_Validate" EnableClientScript="false">
    </asp:CustomValidator>

</form>

这将为按钮生成以下html:

<input type="submit" name="Button1" value="test" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button1&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="Button1" />

如果没有自定义验证器,它将:

<input type="submit" name="Button1" value="test" id="Button1" />

有什么想法吗

谢谢


Annelie

添加javascript是因为自定义验证是通过javascript完成的。它注定会在那里。你认为验证是如何完成的?如果去掉javascript,验证将无法工作。

如果查看
System.Web.UI.WebControls.Button
的内容,您可以了解原因:

GetPostBackOptions()
中,如果页面上(在当前验证组中)有任何验证程序,则它将为回发生成脚本

然后在
AddAttributesToRender()
中,如果存在任何脚本,它们将在onclick事件中呈现出来


如果您需要绕过这个问题,那么您必须构建一个自定义按钮

不,验证不是通过javascript完成的,它只是服务器端。在关闭javascript的情况下可以正常工作。抱歉,我不知道您只是在进行服务器端验证。但是它需要定义,并且没有办法删除它。好吧,酷。我本来希望它不会在任何情况下都不需要的时候生成任何javascript,但我想我们当时只能使用它了。这不是一个大问题,我只是看了看我们的前端要求我们删除所有不必要的javascript。只要它能在关闭javascript的情况下工作,我就很高兴。:)谢谢你的解释!还添加了更多的javascript、验证脚本、回发函数等。