Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
页面验证无法与JavaScript代码一起运行_Javascript_Asp.net_Validation_Requiredfieldvalidator - Fatal编程技术网

页面验证无法与JavaScript代码一起运行

页面验证无法与JavaScript代码一起运行,javascript,asp.net,validation,requiredfieldvalidator,Javascript,Asp.net,Validation,Requiredfieldvalidator,我已要求FieldValidator在面板内提供dropdownlist。如果在下拉列表btnSubmitReport中未选择任何数据,则可以很好地验证和显示*。选择数据并单击btnSubmitReport以显示数据后,它仍然可以正常工作。现在,如果取消选择下拉列表并点击btnSubmitReport,它将不再进行验证。这是因为第一次单击btnSubmitReport_Click时,它会检查Page.IsValid是否有效并调用JavaScript代码,但随后的调用只是调用JavaScript代

我已要求FieldValidator在面板内提供dropdownlist。如果在下拉列表btnSubmitReport中未选择任何数据,则可以很好地验证和显示*。选择数据并单击btnSubmitReport以显示数据后,它仍然可以正常工作。现在,如果取消选择下拉列表并点击btnSubmitReport,它将不再进行验证。这是因为第一次单击btnSubmitReport_Click时,它会检查Page.IsValid是否有效并调用JavaScript代码,但随后的调用只是调用JavaScript代码,不会调用btnSubmitReport_Click来查看页面是否有效。请建议。以下是aspx页面上的示例代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testValidator.aspx.cs"
    MasterPageFile="~/Site.master" Inherits="textXslt.testValidator" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <script src="Styles/Reports.js" type="text/javascript"></script>
    <h3>
        <asp:Label ID="lblHeader" runat="server" Text="Reporting Filter"></asp:Label>
    </h3>
    <div style="text-align: right">
        <input id="lnkShowFilter" type="button" value="Show Filter" onclick="ShowF()" class="btn" />
        <input id="lnkHideFilter" type="button" value="Hide Filter" onclick="HideF()" class="btn" />
    </div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div id="divFilter">
        <asp:UpdatePanel ID="uplMain" runat="server">
            <ContentTemplate>
                <asp:PlaceHolder ID="PlaceHolder1" runat="server">
                    <table>
                        <tr>
                            <td valign="top">
                                <table>
                                    <tr>
                                        <td>
                                            <asp:CheckBox ID="chkBusiness" runat="server" Text="Business Division" CssClass="chkbox" />
                                        </td>
                                        <td>
                                            <asp:DropDownList ID="ddlBusiness" runat="server" AppendDataBoundItems="true" AutoPostBack="true"
                                                CausesValidation="True" OnSelectedIndexChanged="ddlBusiness_SelectedIndexChanged"
                                                ValidationGroup="grpSubmit" Width="350px">
                                                <asp:ListItem Selected="True" Value="-1">--- SELECT ---</asp:ListItem>
                                                <asp:ListItem>Orange</asp:ListItem>
                                                <asp:ListItem>Apple</asp:ListItem>
                                                <asp:ListItem>Mango</asp:ListItem>
                                            </asp:DropDownList>
                                            </asp:DropDownList>
                                            <asp:RequiredFieldValidator ID="rfvBusiness" runat="server" ControlToValidate="ddlBusiness"
                                                Enabled="true" ToolTip="Please select a Business." ErrorMessage="*" InitialValue="-1"
                                                ForeColor="Red" CssClass="required" Display="Dynamic" ValidationGroup="grpSubmit">
                                            </asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </table>
                </asp:PlaceHolder>
                <hr size="1" />
                <div style="text-align: center">
                    <table style="width: 10%">
                        <tr>
                            <td>
                                <asp:Button ID="btnHome" runat="server" Text="Home" OnClick="btnHome_Click" CssClass="btn" />
                            </td>
                            <td>
                                <asp:Button ID="btnSubmitReport" runat="server" Text="Submit" OnClick="btnSubmitReport_Click"
                                    ValidationGroup="grpSubmit" CssClass="btn" />
                            </td>
                        </tr>
                    </table>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    <div id="divResult">
        <asp:UpdatePanel ID="uplGrid" runat="server">
            <ContentTemplate>
                Here go Results of grid
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</asp:Content>
下面是Reports.js文件:

    function ShowF() {
    $('#lnkShowFilter').hide();
    $('#divFilter').show();
    $('#lnkHideFilter').show();
    $('#divResult').hide();
    $('#MainContent_lblHeader').text("Reporting Filter");
}

function HideF() {
    $('#lnkShowFilter').show();
    $('#divFilter').hide();
    $('#lnkHideFilter').hide();
    $('#divResult').show();
    $('#').show();
    $('#MainContent_lblHeader').text("Report Result");
}

function SubmitF() {
   // alert("SubmitF");
    $('#lnkShowFilter').show();
    $('#divFilter').hide();
    $('#lnkHideFilter').hide();
    $('#divResult').show();
    $('#MainContent_lblHeader').text("Report Result");
}

我通过客户端验证解决了这个问题。所以我创建了一个函数

    <script type="text/javascript">
        function ValidateAndShowPopup() {
            if (Page_ClientValidate('grpSubmit')) {
                SubmitF();
            }
        }

函数ValidateAndShowPopup(){
如果(第_页客户端验证('grpSubmit')){
SubmitF();
}
}

并在提交按钮中添加了OnclientClick和OnClick

 <asp:Button ID="btnSubmitReport" runat="server" Text="Submit" OnClick="btnSubmitReport_Click" ValidationGroup="grpSubmit" OnClientClick="ValidateAndShowPopup()" CssClass="btn" />


检查
Page.IsValid
只有在“原因验证”场景下才有意义-提交表单的按钮的
CausesValidation
属性设置为True。这将自动调用
Page.Validate
,并且将检查属于同一ValidationGroup的所有验证控件的有效性。@Webruster,如果我不检查“If(Page.IsValid)”,则即使页面验证发生并立即出现(*)符号,但会调用SubmitF并隐藏divFilter,并且divResult显示,除非页面有效,否则我们要停止该操作。我们怎么能做到呢?你那边的需求量很大。。
 <asp:Button ID="btnSubmitReport" runat="server" Text="Submit" OnClick="btnSubmitReport_Click" ValidationGroup="grpSubmit" OnClientClick="ValidateAndShowPopup()" CssClass="btn" />