【发布时间】:2023-03-05 21:11:01
【问题描述】:
我有一个带有下拉列表 (Telerik RadComboBox) 控件的页面要验证。
我放了一个 CustomValidator 来验证用户是否从列表中选择了一些东西。 然后有一个LinkButton来提交选择。
这是自定义验证器:
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ClientValidationFunction="validateCombo" ValidateEmptyText="true"
ErrorMessage="You must select an item with even value"
ValidationGroup="defGroup">
这是链接按钮:
<asp:LinkButton ID="LnkInsertOrder" runat="server" Text="Inserisci Ordine" OnClick="LnkInsertOrder_Click" CausesValidation="true" ValidationGroup="defGroup" CssClass="btn btn-lg btn-info"> </asp:LinkButton>
这是我用于测试的客户端函数:
function validateCombo(source, args) {
alert('validateCombo'); //is never shown!
args.IsValid = false; //fake validation...
}
validateCombo 从未被调用,因为我从未看到警报,即使我尝试从 js 控制台手动调用 .net 框架函数 Page_ClientValidate("defGroup"),它总是返回true,并且不显示警报。
当我按下链接按钮时,它会执行回发,并且 Page.isValid 属性为 true。
如果 defGroup 验证组的所有验证器都无效,我会尝试在用户按下链接按钮时停止回发。
【问题讨论】:
-
它在这里工作。页面上的其他地方可能存在 JavaScript 错误。如果存在,则验证器不会阻止 PostBack。检查您的控制台。
-
已经检查过了,没有错误!因此,如果它对您有效,则意味着我发布的代码是正确的,它应该以这种方式工作...这是 3 小时我被困在上面而没有看到光线
-
删除浏览器缓存?
-
在验证发生的同时回发?
-
@Antoine 完成,没有任何改变。当我单击 LinkButton 时,它会立即触发回发,验证似乎被忽略了。但是,为什么即使我从控制台手动调用页面验证,它也会完全忽略 CustomValidator??!
标签: javascript c# asp.net telerik customvalidator