asp.net - RequiredFieldValidator 不能与 jQuery UI 一起正常工作

标签 asp.net jquery-ui

我正在开发 ASP.NET Web 窗体应用程序。我有一个非常大的表单,其中包含很多字段,因此我想尽可能多地利用 Web Forms 中的内置服务器控件。此外,由于表单太大,我逻辑上使用 jQuery UI 1-8-24 和 Accordion 菜单将其分成三个部分。我还在这个页面上使用了 DatePicker,所以我的页面看起来像这样:

<script>
    $(function () {
        $("#accordion").accordion();
        $(".inpt-date").datepicker();
    });
    window.history.pushState('obj', '', 'myPage.aspx');
</script>

所以它工作正常,我在这个页面上实现了很多逻辑并且在我声明添加 RequiredFieldValidator 的那一刻一切都工作正常例如:

<asp:TextBox ID="txtEnforcementCase" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator2"
    ControlToValidate="txtEnforcementCase"
    Display="Static"
    Text="*"
    ErrorMessage="This field is required!"
    runat="server"/> 

我认为没有什么不寻常的,因为我使用的是来自 MSDN 的示例,并且验证非常简单,所以我的标准实现对我有用。

但是,当我添加 RequiredFieldValidator 时,我丢失了 jQuery UI 中的所有样式,并且在控制台中出现此错误:

Uncaught TypeError: undefined is not a function

我尝试对页面上的 JS 代码进行注释和取消注释。如果我只使用:

window.history.pushState('obj', '', 'myPage.aspx');

一切正常,但无论我同时使用日期选择器和 Accordion ,还是只使用其中一个,我都会丢失 jQuery UI 样式并得到指向我有 $("#accordion").accordion();$(".inpt-date").datepicker(); 取决于哪一个被评论,哪个没有。我很确定当我尝试同时使用 jQuery UI 和 RequiredFieldValidator 时会出现一些问题。在寻找解决方案时,我发现了一个仅适用于 datepicker 的部分解决方案,它对我不起作用,因为我使用其他 jQuery UI 方法,而且,如果我找到了 accordion 的部分解决方案datepicker 稍后我可能想使用其他东西然后我也必须找到解决方法,所以..有没有办法在 Windows 窗体 将内置控件与 jQuery UI 一起使用?

最佳答案

RequiredFieldValidator来自 ASP.NET 使用需要首先注册的 jQuery 客户端(请参阅 here)。

显然,ASP.NET 注入(inject)了一个 <script>在表单的第一部分引用 jQuery。

如果您注册了自己的 <script> <head> 内的标签你的页面(首先是 jQuery,然后是 jQuery UI),这实际上意味着你失去了你的 jQuery UI 绑定(bind),因为在 <head> 之后再次引用了 jQuery。感谢 WebForms。

解决方案是在页面的末尾引用您的脚本(jQuery、jQuery UI 和任何自定义脚本),例如在表单元素之后。

关于asp.net - RequiredFieldValidator 不能与 jQuery UI 一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25506846/

相关文章:

c# - C# 中的公式生成

c# - 防止没有协议(protocol)的URL变成相对URL

c# - 使用 asp.net-mvc2 和 Entity Framework 编辑和更新复杂 View 模型对象的正确方法

asp.net - 不允许使用 HTTP 动词 POST 来访问路径 '[my path]'

javascript - 如何仅使用按钮而不是整行拖放?

css - jquery autocomplete ul列表项在使用键盘向上和向下箭头时突出显示

jquery - 我如何设置与 jQuery-UI 选项卡不同的 jQuery-UI 自动完成样式?

ASP.NET ViewState 的工作原理

jquery-ui - fancybox 中的 jqueryUI datepicker 不起作用

javascript - 通过拖动节点动态调整 DIV 大小