繁体   English   中英

页面上有两个单独的搜索表单,需要在验证时填写彼此的字段

[英]Two separate search forms on page are requiring each other's fields to be filled out on validation

我的页面有两个单独的搜索表单,一个用于按商品ID搜索,另一个用于按关键字搜索。 看起来像这样:

搜索表格

我只从顶部开始,现在添加底部。 底部的基本上是第一个的副本和粘贴(两者都是Sitecore中的组件)。 这是每个的代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchByItemNumber.ascx.cs" Inherits="Bayer.CropScience.SC.Internet.US.Website.layouts.Bayer_CropScience.Scope.Country_United_States_Internet.RewardsCatalog.SearchByItemNumber" %>

<div class="form search-item">
    <div class="clearfix">
        <h3>
            <label class="searchByItemNumber" for="item-num">Know your item number?</label></h3>
        <div class="input-wrapper search-by-itemnumber-length">
            <asp:TextBox runat="server" ID="txtSearchItemNumber" CssClass="search-by-itemnumber-length" placeholder="Search by Item Number" />
            <asp:RequiredFieldValidator runat="server" ID="rfvSearchItemNumber" ControlToValidate="txtSearchItemNumber" ValidationGroup="searchCatalog" ErrorMessage="Please fill out this field." CssClass="error"></asp:RequiredFieldValidator>
        </div>
        <asp:Button runat="server" Text="Go" CssClass="small" OnClick="Search" ValidationGroup="searchCatalog" />
    </div>
</div>

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchByDescription.ascx.cs" Inherits="Bayer.CropScience.SC.Internet.US.Website.layouts.Bayer_CropScience.Scope.Country_United_States_Internet.RewardsCatalog.SearchByDescription" %>

<div class="form search-item">
    <div class="clearfix">
        <h3>
            <label class="searchByKeywords" for="item-keywords">Search by keywords</label></h3>
        <div class="input-wrapper search-by-keywords">
            <asp:TextBox runat="server" ID="txtSearchKeyword" CssClass="search-by-keywords" placeholder="Search by keywords" />
            <asp:RequiredFieldValidator runat="server" ID="rfvSearchKeyword" ControlToValidate="txtSearchKeyword" ValidationGroup="searchCatalogKeywords" ErrorMessage="Please fill out this field." CssClass="error"></asp:RequiredFieldValidator>
        </div>
        <asp:Button runat="server" Text="Go" CssClass="small" OnClick="KeywordSearch" ValidationGroup="searchCatalogKeywords" />
    </div>
</div>

问题是,当我填写项目编号并单击“执行”时,在关键字框下收到验证错误消息“请填写此字段”,反之亦然。 如何阻止这种情况的发生?

编辑-当我按“输入”时发生验证错误,但当我单击“执行”按钮时却没有

编辑2-这是一个JavaScript问题,按Enter键会使两个字段都通过验证。 我用自定义的onkeypress函数覆盖了它

您需要具有不同的ValidationGroups 您在所有字段上都使用ValidationGroup="searchCatalog" 为要一起验证的字段分配一个唯一的ValidationGroup

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM