如何在失败的表单验证周围DIV添加一个额外的CSS类? [英] How do I add an additional CSS class on a surrounding DIV for failed form validation?

查看:132
本文介绍了如何在失败的表单验证周围DIV添加一个额外的CSS类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的情况:

  <!-- Normal Control -->
  <div class="required">
    <label for="address1">Address line 1</label>
    <input type="text id="address1" name="address1" class="inputText" />
  </div>

  <!-- Same Control - but with a validation error -->
  <div class="required error">
    <p class="error">Address Line 1 Field is required</p>
    <label for="address1">Address line 1</label>
    <input type="text id="address1" name="address1" class="inputText" />
  </div>

在验证错误HTML领域,我可以在使用code这样来显示信息:

In the "validation error" html area, I'm able to show the message using code like this:

  <div class="required">
    <asp:RequiredFieldValidator id="address1_validate" runat="server" ControlToValidate="address1" Text='<p class="error">Address Line 1 Field is required</p>' />
    <label for="address1">Address (line 1)</label>
    <asp:TextBox id="address1" CssClass="inputText" CausesValidation="true" runat="server"/>
  </div>

什么我不能做的是另外的类添加到周围的div标签。
我在想,我可以做这样的事情:

What I'm not able to do is add the additional class to the surrounding div tag. I was thinking that I could do something like:

  <div class="required <%= !address1_validate.isValid ? "error" : "" %>">

这pretty多不起作用。

That pretty much doesn't work.

不过,我不希望要依靠JavaScript来设置这些值 - 它需要像网络1.0的工作。

Anyway, I don't want to have to rely on JavaScript to set these values - it needs to work like "Web 1.0".

任何想法?

谢谢,
乔恩

-------我的解决办法-------
下面是落后于code为我工作:

------- My Solution------- Here's the code behind that worked for me:

  protected void Page_Load(object sender, EventArgs e)
  {
    if (this.IsPostBack)
    {
      address1_validate.Validate();
      if (!address1_validate.IsValid)
      {
        address_panel.CssClass = "required error";
      }
    }
  }

和前端

  <asp:Panel runat="server" id="address_panel" CssClass="required">
    <asp:RequiredFieldValidator id="address1_validate" runat="server" ControlToValidate="address1" Text='<p class="error">Address Field is required</p>' />
    <label for="address1">Address (line 1)</label>
    <asp:TextBox id="address1" CssClass="inputText" CausesValidation="true" EnableViewState="true" runat="server"  />
  </asp:Panel>

感谢您的帮助!

推荐答案

您可以用ASP面板,当然RUNAT =服务器更换股利。

You could replace the div with an ASP panel, runat=server of course.

<asp:Panel runat="server" ID="Panel1">
    <label for="address1">Address line 1</label>
    <input type="text id="address1" name="address1" class="inputText" />
</asp:Panel>

在codebehind,你可以再做 -

In the codebehind, you can then do -

address1_validate.Validate();
...
...
if(address1_validate.IsValid)
     Panel1.CssClass = "required";
else
     Panel1.CssClass = "required error";

这篇关于如何在失败的表单验证周围DIV添加一个额外的CSS类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆