我有一个按钮
<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">×</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 工作正常。知道它为什么以及任何其他验证必填字段的方法。提前谢谢。
答案 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"/>