C# · 12月 29, 2021

c#-4.0 – 自定义验证器触发但不会阻止回发

我已经看到了很多关于这个的问题,但我很难过!请帮忙!

我有一个customvalidator.它正在开火,但它并没有阻止回发.请帮我这样做!我可以看到console.log在帖子之前注册.但是,无论如何它都会回复.如何防止回发?

我已经尝试添加一个控件来验证,并验证空文本是否等于true.我也尝试添加e.preventdefault,这不起作用:(

如何防止回发?

<script type=”text/javascript”>//<![CDATA[function validateWhyUnlikely(source,args) { console.log(1); args.isValid = false;}//]]> <asp:Text@R_498_2419@ ID=”txtWhyUnlikely” runat=”server” Rows=”4″ cols=”20″ CssClass=”surveyTextArea” /><asp:CustomValidator runat=”server” ID=”cfvWhyUnlikley” ErrorMessage=”Please provide a reason since you rated an item as unlikely to provide.” CssClass=”surveyError surveySmallIndent” Display=”Dynamic” ClientValidationFunction=”validateWhyUnlikely” /><asp:Button ID=”btnSubmit” runat=”server” Text=”Submit” CssClass=”smallSpecial” OnClick=”btnSubmit_Click” />jQuery(document).ready(function () { jQuery(‘#<%= btnSubmit.ClientID %>’).click(function (e) { if (Page.IsValid == false) { console.log(false); e.preventDefault(); return false; } });});解决方法 一切看起来都不错我不确定你为什么要将Click功能附加到你的提交按钮.我会删除它并测试它,因为它可能会覆盖默认行为.

另外我认为你需要大写IsValid属性:

args.IsValid = false;