如何在失败的表单验证周围DIV添加一个额外的CSS类? [英] How do I add an additional CSS class on a surrounding DIV for failed form validation?
问题描述
下面是我的情况:
<!-- 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屋!