【问题标题】:HTML5 required="" attribute with .NET webforms带有 .NET 网络表单的 HTML5 required="" 属性
【发布时间】:2013-03-04 07:02:16
【问题描述】:

我正在尝试在我的 .NET 4.5 网络表单应用程序的表单字段中使用新的 required 属性。

但是,由于只有一个<form> 包围了页面上的所有控件(webforms 样式),因此当按下提交按钮时,浏览器不知道要验证哪些字段。

下面附上了具有登录功能和页面搜索功能的页面的剥离版本。

当我点击搜索按钮时,我的浏览器告诉我必须先填写用户名和密码字段。当我尝试登录时,它告诉我必须在搜索字段中输入一些文本。因为所有字段都是同一个<form> 标记的子项。

还有其他人遇到过这个问题或提出了解决方案吗?我想使用 HTML5 属性进行表单验证,没有 javascript 解决方案。

<!DOCTYPE html>

<html>
<head>
    <title>Title</title>
</head>
<body>
  <form method="post" runat="server" id="mainform">


    <%// Search %>
    <asp:Panel runat="server" DefaultButton="searchButton" >

      <asp:TextBox runat="server" ID="searchQuery" ClientIDMode="Static" required="required" />
      <asp:Button runat="server" ID="searchButton" ClientIDMode="Static" Text="Search"/>

    </asp:Panel>


    <%// Login %>
    <asp:Panel runat="server" DefaultButton="signInButton">

      <label for="inputusername">Username</label>
      <asp:TextBox runat="server" ClientIDMode="Static" ID="inputusername" required="required" />

      <label for="inputpassword">Password</label>
      <asp:TextBox runat="server" TextMode="Password" ClientIDMode="Static" ID="inputpassword" required="required" />

      <asp:Button ID="signInButton" runat="server" />

    </asp:Panel>

  </form>
</body>
</html>

</html>

【问题讨论】:

  • 您是否尝试过将搜索表单输出?
  • 对不起,我不明白...
  • 您是否尝试过在表单外搜索?
  • 不能那样做。表单标签必须包装所有服务器控件...
  • HTML5 required 属性不允许任何组进行设置,并且 ASP.NET 不允许(没有 tomfoolery)允许多个 form 标记(带有服务器控件)。您可以改用RequiredFieldValidator 并设置关联控件的ValidationGroup 属性。

标签: .net html webforms


【解决方案1】:

向“搜索”按钮添加 novalidate 属性。就这么简单。

http://www.w3schools.com/tags/att_form_novalidate.asp

【讨论】:

    【解决方案2】:

    请试试这个..它对我有用..

    <asp:TextBox runat="server" 
                 ClientIDMode="Static" 
                 ID="inputusername"                    
                 required />
    

    【讨论】:

    • 重复的ClientIDMode="Static"是故意的吗?
    【解决方案3】:

    由于 ASP.Net Web Forms 编程模型不允许使用多个 HTML 标记,因此您无法利用这一点。

    【讨论】:

    • 看第二个答案
    猜你喜欢
    • 2013-07-04
    • 2017-02-27
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2015-12-19
    相关资源
    最近更新 更多