2016-09-15 4 views
0

У меня есть страница, которая имеет две отдельные формы поиска: одну для поиска по идентификатору товара и по одному для поиска по ключевым словам. Это выглядит следующим образом:Две отдельные формы поиска на странице требуют заполнения полей друг друга при проверке

search forms

я начал только с самим верхней, я теперь добавлять нижнюю. Нижняя часть - это в основном копия и вставка первого (оба являются компонентами 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> 

Проблема в том, что, когда я заполняю номер пункта и нажмите кнопку Go, я получаю сообщение об ошибке проверки «Пожалуйста, заполните это поле» под ключевых слов, и наоборот. Как остановить это?

EDIT - ошибка проверки происходит, когда я нажимаю «войти», но не тогда, когда я нажимаю «Go» кнопку

EDIT 2 - Это был вопрос Javascript, нажимая клавишу ВВОД причинял оба поля для проверки. Я перепробовал его с помощью функции onkeypress

ответ

3

Вам необходимо иметь разные ValidationGroups. Вы используете ValidationGroup="searchCatalog" во всех полях. Назначьте Уникальную группу ValidationGroup в поля, которые вы хотите проверить вместе.

+0

о, отлично! благодаря! –

+0

Я изменил группу проверки второй формы, но проблема все еще встречается –

+0

Обновление - ошибка проверки возникает, когда я нажимаю кнопку ввода, но не тогда, когда я нажимаю кнопку –