我查了一下论坛但没找到适合我的解决方案。我有一个带有母版页的简单.Net页面。我正在尝试使用CustomSalidators实现ValidationGroup,并使用ClientSide验证。
HTML非常简单(注意,只有文本框目前正在验证,仅用于测试目的)。
<div style="border: 1px solid #000; padding: 30px; margin-top: 100px;">
<asp:TextBox ID="txt1" runat="server" CssClass="form-control"></asp:TextBox>
<asp:TextBox ID="txt2" runat="server" CssClass="form-control"></asp:TextBox>
<asp:Button ID="btn1" runat="server" Text="Test A" CssClass="btn btn-primary" ValidationGroup="vgroup1" />
</div>
<asp:CustomValidator ID="cvTxt1" runat="server" ValidationGroup="vgroup1" ControlToValidate="txt1" ClientValidationFunction="textValidate" ValidateEmptyText="True"></asp:CustomValidator>
javascript也是直截了当的:
<script type="text/javascript">
function textValidate(oSrc, args) {
var isValid = false;
// label label-warning
isValid = args.Value.trim();
if (isValid) {
$("#" + oSrc.controltovalidate).removeClass("has-error");
}
else {
$("#" + oSrc.controltovalidate).addClass("has-error");
}
args.IsValid = isValid;
}
</script>
oSrc.controltovalidate
生成ctl00_ContentPlaceHolder1_txt1
(我手动添加#
),因此生成了正确的ID。但是,班级没有更新?
UPDATE:在head部分创建一个名为.test的自定义类时,该类已按原样添加。那么,什么可能导致.has-error不被应用?
有什么想法吗?
答案 0 :(得分:0)
var isValid = false;
// label label-warning
isValid = args.Value.trim();
if (isValid) {
$("#" + oSrc.controltovalidate).removeClass("has-error");
}
else {
$("#" + oSrc.controltovalidate).addClass("has-error");
}
该行&#39; isValid = args.Value.trim();&#39;需要在传递给if语句之前将它的值转换为布尔值,true / false吗?
答案 1 :(得分:0)
似乎控件需要包含在FORM-GROUP类的div中。然后为该组中的所有对象分配正确的类。