asp.net中的Page_ClientValidate始终返回true

时间:2018-03-05 05:15:30

标签: javascript asp.net validation webforms

我有一个简单的asp.net webform,它总是对Page_ClientValidate返回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以检查原因是什么返回真实

1 个答案:

答案 0 :(得分:0)

问题已解决,因为问题是由jQuery v1.12.4引起的,我从另一个文件夹中提取而不是内容的默认文件夹。我已将其从默认文件夹中删除,并使用模板的jquery以避免与插件发生任何冲突..

我在模板资产文件夹

中使用了这个
 <script type="text/javascript" src="~/assets/en/js/jQuery v1.12.4.js"></script>

当我删除上面的行并使用它工作的默认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>