我的问题看起来很奇怪,但我没有找到正确的解决方案。
在我的应用程序中,我有一些 asp 文本框,还需要字段验证器。除此之外,我还有一个按钮。
我的目的是在表单提交之前执行页面验证。但是当我单击按钮时,requiredfieldvalidator 没有显示任何错误。相反,该页面正在提交到服务器。
以下是我的aspx页面代码:
<asp:TextBox runat="server" ID="txtPhysicalTherapyTherapist1" CssClass="txt-field"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator19" runat="server" ControlToValidate="txtPhysicalTherapyTherapist1"
ErrorMessage="this is required" ForeColor="Red"
ValidationGroup="PhysTherapyAdd" Display="Dynamic" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:TextBox runat="server" ID="txtPhysicalTherapyFrequency1" CssClass="txt-field"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator18" runat="server" ControlToValidate="txtPhysicalTherapyFrequency1"
ErrorMessage="Frequency is required" ForeColor="Red"
ValidationGroup="PhysTherapyAdd" Display="Dynamic" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:Button ValidationGroup="PhysTherapyAdd" ID="btn_physicaltherapy"
runat="server" Style="width: 80px;" CssClass="tabs" CausesValidation="false" Text="Save"
OnClick="btn_physicaltherapy_Click" />
我将本地 JavaScript 放置如下:
function validatePage() {
if (Page_ClientValidate()) {
alert("Valid Page");
return true;
}
else {
alert("Not a valid Page");
return false;
}
}
但是当我单击将文本框保持为空的按钮时,它将表单提交到服务器。
请为我提供正确的解决方案。
最佳答案
您的按钮有 CausesValidation="false"
这将阻止对表单的任何验证。尝试将其设置为 CausesValidation="true"
或者您可以完全删除它,因为它应该默认为 true。
一般来说,只有在您不尝试提交页面时才应将其设置为 false,例如,如果您有 Save
函数将保存部分完成的表单,或者如果您使用 <asp:UpdatePanel>
异步检索数据
关于javascript - 必填字段验证器在回发之前不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29297826/