【问题标题】:.NET HtmlButton always triggers validators.NET HtmlButton 总是触发验证器
【发布时间】:2010-10-10 06:46:56
【问题描述】:

我用 HtmlButton 创建了一个服务器控件,但禁用了验证。

<button runat="server" causesvalidation="false" />

不是输入按钮!!!

<input type="button" runat="server />

我的表单上有一堆验证器,当我单击 HtmlButton 时,它们仍然运行验证器。如果我使用输入按钮没有问题,验证器不会运行。

这是预期的行为还是错误?

【问题讨论】:

    标签: .net asp.net validation htmlbutton


    【解决方案1】:

    仍在运行验证器——您是指客户端、服务器端,还是两者兼而有之?

    【讨论】:

    • 它只在服务器端运行。我创建了新的验证器,它仍在运行它们。它们没有在后面的代码中启用/禁用
    【解决方案2】:

    我试过了,它按预期工作。我认为你应该检查你的代码,也许你在服务器端启用它。

    <button runat="server" ID="btnSubmit" causesvalidation="false"
     onserverclick="SubmitButton_Click"></button>
    

    为了解决这个问题,您可以将验证组添加到您的验证中。

    【讨论】:

    • 在这种情况下使用HtmlButton而不是服务器端asp:Button做什么?
    【解决方案3】:

    您的按钮上没有 id?这可能会导致一个问题,即它不知道按钮的名称,因此不会为其加载所有属性。远射,但你永远不知道。

    【讨论】:

    • 对不起,我的错。我的代码中确实有一个 id,但为简洁起见,我没有将其包含在示例中
    【解决方案4】:

    【讨论】:

      【解决方案5】:

      取决于使用验证的位置以及它们是否在同一个组中。您在验证组上添加验证限制。如果它们不在一个组中,则表单向服务器的发布可能会导致它验证控件。

      :)

      【讨论】:

        【解决方案6】:

        您所要做的就是设置属性 type="button"。默认必须是提交。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-09
          • 2023-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-07
          相关资源
          最近更新 更多