我正在尝试使用一个必需的字段验证器和Telerik的RadAjaxManager。
如果我使用的是一个按钮,那么就不会有问题,并且当字段为空时不会发生回发。但是,在某些情况下,我手动调用ajax请求,然后验证不会发生,无论字段是否为空,都会发生回发。
下面是一个同时包含按钮和手动请求的示例:
<script type="text/javascript">
$("#spanSubmit").click(function()
{
$find("<%=RadAjaxManager1.ClientID%>").ajaxRequest();
});
</script>
<asp:TextBox ID="tb1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="req1" runat="server" ControlToValidate="tb1" Text="!!!"></asp:RequiredFieldValidator>
<asp:Button ID="button1" runat="server" onclick="button1_Click" Text="Submit" />
<span id="spanSubmit">Ajax Request</span>
<asp:Label ID="Label1" runat="server"></asp:Label>
<telerik:RadScriptManager ID="ScriptManager1" runat="server"></telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="button1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Label1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Label1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>在文本框为空的情况下单击button1时,不会发生回发。如果在文本框为空的情况下单击跨度,则会发生回发,并且在服务器端,除非我手动调用Page.Validate(),否则req1.IsValid为真。
在执行这样的ajax请求时,有没有一种简单的方法来激活验证器?
(我意识到有一些方法可以使用javascript调用验证器,就像在这个example中一样,但是因为我可能有几个来自不同自定义控件的验证器,所以我希望有一种更简单的方法)
发布于 2011-02-07 21:06:57
几周前,我搜索了同样的东西,偶然发现了this forum post。建议使用Page_ClientValidate()调用,然后显式地阻止页面提交。我还没有尝试过,因为我的项目任务被搁置,但似乎正在为启动线程的人工作,因此您可以尝试它。
https://stackoverflow.com/questions/4920216
复制相似问题