RequiredFieldValidator阻止引导模式弹出

时间:2016-01-09 04:04:48

标签: asp.net bootstrap-modal requiredfieldvalidator

我有一个按钮

 <button type="button" class="btn btn-primary horizontal-bar" id="btnAdd" runat="server" onserverclick="btnAdd_ServerClick">
            Add
        </button>

调用方法

  protected void btnAdd_ServerClick(object sender, EventArgs e)
    {
        ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "script", "<script type='text/javascript'>$( document ).ready(function() { $('#GaragesModal').modal('show')});</script>", false);
    }

应该打开模态

<div class="modal fade" id="GaragesModal">
    <div class="modal-dialog small">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title">Garages</h4>
            </div>
            <div class="modal-body">
                <div class="form-horizontal">
                    <div class="form-group">
                        <label for="txtName" class="col-sm-2 control-label">Name</label>
                        <div class="col-sm-10">                             
                            <asp:TextBox ID="txtName" runat="server" OnTextChanged="txtName_TextChanged" CssClass="form-control"></asp:TextBox>
                            <asp:RegularExpressionValidator runat="server" ControlToValidate="txtName" ValidationExpression="^[a-zA-Z ]*$" ErrorMessage="Name required" ForeColor="#ff0000" />
                            <asp:RequiredFieldValidator ErrorMessage="errormessage" ControlToValidate="txtName" runat="server" />
                        </div>
                    </div>...(closing tags)

问题是当我将 asp:RequiredFieldValidator 添加到代码中显示的文本框时,单击按钮时不会触发 btnAdd_ServerClick 方法。 asp:RegularExpressionValidator 工作正常。知道它为什么以及任何其他验证必填字段的方法。提前谢谢。

1 个答案:

答案 0 :(得分:3)

您需要在模态弹出窗口中连接验证器,仅使用模态弹出窗口中的按钮,此时验证器也与Add按钮连接。您可以通过为验证器分配ValidationGroup和模式弹出窗口中的按钮来完成此操作。不要为ValidationGroup按钮提供任何Add,因为它只会打开弹出窗口。

你没有在模态弹出窗口中显示按钮,但我相信你有一个按钮。请将该按钮的ValidationGroup设置为与验证器相同的值。

不要向Add按钮提供任何验证组,并将其CausesValidation属性设置为false。

<asp:RegularExpressionValidator runat="server" ControlToValidate="txtName"
   ValidationExpression="^[a-zA-Z ]*$" ErrorMessage="Name required"
   ForeColor="#ff0000" ValidationGroup="Save"/>
<asp:RequiredFieldValidator ErrorMessage="errormessage" 
  ControlToValidate="txtName" runat="server" ValidationGroup="Save"/>