Skip to main content
 首页 » 编程设计

javascript之必填字段验证器在回发前不起作用

2024年08月06日42me-sa


我的问题看起来很奇怪,但我没有找到合适的解决方案。
在我的应用程序中,我有一些 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。

一般来说,如果您不想提交您的页面,例如您有一个 Save,您应该只将此设置为 false。函数将保存部分完成的表单,或者如果您使用的是 <asp:UpdatePanel>异步检索数据