如何使用Bootstrap验证创建自定义“组验证”?

时间:2014-01-09 18:11:28

标签: jquery css validation twitter-bootstrap

我在引导验证上看this tutorial。在本教程中,电子邮件文本控件通过以下方式链接在一起:

data-validation-matches-match="email"

此外,对于一组复选框,还会检查minmax值。 我的问题是这个,假设我有一组文本框,在这个例子中我命名了主div AddressCityCounty

<div id="AddressCityCounty" style="width:800px;">
<div class="control-group" style="float:left; margin-right:10px;">
    <label class="control-label">Address:
        <asp:RequiredFieldValidator ID="reqAddress" runat="server" ControlToValidate="txtAddress" CssClass="required" EnableClientScript="true" Display="dynamic" SetFocusOnError="true" ErrorMessage="*"/>
    </label>
    <div class="controls">
        <asp:TextBox ID="txtAddress" runat="server" required/>
        <p class="help-block"></p>
    </div>
</div>
<div class="control-group" style="float:left; margin-right:10px;">
    <label class="control-label">City:
        <asp:RequiredFieldValidator ID="reqCity" runat="server" ControlToValidate="txtCity" CssClass="required" EnableClientScript="true" Display="dynamic" SetFocusOnError="true" ErrorMessage="*"/>
    </label>
    <div class="controls">
        <asp:TextBox ID="txtCity" runat="server" required/>
        <p class="help-block"></p>
    </div>
</div>
<div class="control-group" style="float:left;">
    <label class="control-label">County: 
        <asp:RequiredFieldValidator ID="reqCounty" runat="server" ControlToValidate="txtCounty" CssClass="required" EnableClientScript="true" Display="dynamic" SetFocusOnError="true" ErrorMessage="*"/>
    </label>
    <div class="controls">
        <asp:TextBox ID="txtCounty" runat="server" required/>
        <p class="help-block"></p>
    </div>
</div>

如何编写脚本以使控件组变为黄色(就像教程中的电子邮件和质量控制组一样),直到该组中的所有字段都已填写完毕?

1 个答案:

答案 0 :(得分:1)

首先,我建议您不要使用asp.net控件来执行此操作。我过去曾使用过这些Twitter bootstrap并取得了不同程度的成功。我会改用HTML文本框。如果您正在使用.NET框架并且需要服务器端验证,我可能还建议使用模型验证的.NET MVC - 更清洁。

首先,您需要将jsBootstrapValidation添加到项目中,并引用twitter bootstrap。之后,您希望继续并按照网站上的建议进行操作。如果您发现电子邮件验证所需的全部内容,则可以将文本框设置为

<input type="email" />

jsBootstrapValidation将完成剩下的工作。但同样 - 你将无法使用asp.net控件实现这一目标。

您应该可以将asp.net控件设置为

<asp:Textbox id"emailTextbox" class="email" runat="server" />

之后,您需要提供自定义jquery来处理具有特定类的任何文本框上的不同事件,并以此方式执行。繁琐?绝对。值得?取决于这是一个面向公众的应用程序如何肛门他们想要这样的东西。