【问题标题】:ASP.NET WebForms Textbox removes HTML5 pattern attributeASP.NET WebForms 文本框删除 HTML5 模式属性
【发布时间】:2015-12-01 02:50:36
【问题描述】:

假设我在一个 webforms 项目中有一个文本框,如下所示:

<asp:textbox id="TextBox1" runat="server" pattern="[A-Za-z0-9\s]{4,}"/>

在渲染时,模式属性被移除。如果我在代码隐藏中添加属性,该属性也会被删除:

TextBox1.Attributes.Add("pattern", "[A-Za-z0-9\\s]{4,}");

模式实际上是什么并不重要。它是名为“pattern”的属性,在渲染时会被清除。将属性命名为其他名称,它将被渲染。

我找不到有关此的文档,也没有人遇到同样的问题。除了编写扩展 TextBox 的自定义服务器控件之外,有人有解决方法吗?

【问题讨论】:

  • 如果您使用的是 Visual Studio,是否可以尝试在您的选项中更新 HTML 验证?转到工具-> 文本编辑器-> HTML(Web 表单)-> 验证,然后在“找不到文档类型时的目标”中选择 HTML5。否则,请仔细检查您使用的浏览器是否与 HTML5 兼容?

标签: asp.net html


【解决方案1】:

您的模式属性没有被删除。如果您将模式定义为文本框的模式属性:

   <asp:textbox id="TextBox1" runat="server" pattern="[A-Za-z0-9\s]{4,}"/>

然后在你后面的代码中你可以检查值:

     var r = TextBox1.Attributes["pattern"];

【讨论】:

  • 不,它被擦掉了。查看源代码,它不在那里。
  • 我可以在查看源代码中看到它:
  • 是的......我正在进一步研究它,它似乎与本地项目有关。我正在尝试追踪它。
【解决方案2】:

我已经追踪到使用 Web Experience Toolkit。具体来说,“删除模式属性,直到可以安全地与 jQuery Validation 一起使用”的部分。将向他们提出问题。

https://github.com/wet-boew/wet-boew/blob/0f614e0efd50df7970a6fc6bb72104e43b48e8f5/src/plugins/formvalid/formvalid.js#L105

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    相关资源
    最近更新 更多