.net 所需HTML5="&引用;NET webforms的属性

.net 所需HTML5="&引用;NET webforms的属性,.net,html,webforms,.net,Html,Webforms,我正在尝试在.NET4.5WebForms应用程序的表单字段上使用新的required属性 但是,由于页面上的所有控件(webforms样式)周围只有一个,因此按下提交按钮时,浏览器不知道要验证哪些字段 下面附加了一个具有登录功能和页面搜索功能的剥离版页面 当我点击搜索按钮时,我的浏览器告诉我必须先填写用户名和密码字段。当我尝试登录时,它告诉我必须在搜索字段中输入一些文本。因为所有字段都是同一标记的子项 还有其他人有这个问题或想出了解决办法吗?我想使用HTML5属性进行表单验证,而不是javas

我正在尝试在.NET4.5WebForms应用程序的表单字段上使用新的
required
属性

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

下面附加了一个具有登录功能和页面搜索功能的剥离版页面

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

还有其他人有这个问题或想出了解决办法吗?我想使用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>

标题
用户名
密码

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

请尝试一下。。这对我很管用

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

将novalidate属性添加到搜索按钮。就这么简单


您是否尝试过在搜索时退出表单?很抱歉,我不明白……您是否尝试过在表单之外搜索?无法执行此操作。表单标签必须包装所有服务器控件…HTML5
required
属性不允许任何组进行设置,ASP.NET(没有Tom傻瓜)不允许多个
表单
标签(带有服务器控件)。您可以改为使用
RequiredFieldValidator
并设置相关控件的
ValidationGroup
属性。请参阅第二个答案是重复的
clientMode=“Static”