我有一个简单的asp.net webform,它总是为Page_ClientValidate返回true并提交表单而不进行验证。
我在其他文章的基础上做了一些修改,但我仍然不断地返回true。
示例代码
<div>
<asp:ValidationSummary ID="vsForm" runat="server" CssClass="validationsum" ValidationGroup="vgFormContact" />
<asp:TextBox ID="txtFullName" CssClass="input_field" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfName" runat="server" ErrorMessage="Name field can't be blank" CssClass="css-validator" ControlToValidate="txtFullName" ValidationGroup="vgFormContact"></asp:RequiredFieldValidator>
<div class="col-sm-12">
<asp:Button ID="btnSave" CssClass="btn btn-style" runat="server" Text="SAVE" ValidationGroup="vgFormContact" OnClientClick="ValidateForm(this);" OnClick="btnSave_Click" />
</div>
<script type="text/javascript">
function ValidateForm(myButton) {
// Client side validation
if (typeof (Page_ClientValidate) == 'function') {
if (Page_ClientValidate("vgFormContact") == false) {
return false;
}
}
return true;
}
</script>我已经为CausesValidation="false" UseSubmitBehavior="true"更改了属性--没有什么能起到任何作用,我从来没有遇到过这样的问题,之前我不知道我在哪里做错了。
为了这个问题的简单性,我只添加了一个字段作为示例,在解决问题的实际代码中,我也是这样做的,我只是验证txtFullName以测试purpose,以检查为什么返回true。
发布于 2018-03-05 08:55:49
问题得到了解决,因为jQuery v1.12.4是我从另一个文件夹中提取的,而不是默认的内容文件夹。我已经将它从默认文件夹中删除,并使用模板的jquery来避免与插件的任何冲突。
我正在使用模板资产文件夹中的这个
<script type="text/javascript" src="~/assets/en/js/jQuery v1.12.4.js"></script>WHen我删除了上面的一行,并使用了默认的jquery文件。
<script type="text/javascript" src="~/scripts/jQuery v1.12.4.js"></script>问题似乎是jQuery文件被调用了
<asp:ScriptManager runat="server" EnablePageMethods="true">
<Scripts>
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" />
</Scripts>
</asp:ScriptManager>https://stackoverflow.com/questions/49103868
复制相似问题