2014-05-26 2 views
0

У меня есть форма, содержащая контейнер табуляции ajaxtoolkit и внутри одной из вкладки контейнера табуляции у меня есть ретранслятор, который возвращает результат процесса поиска. После процесса поиска пользователи смогут обновлять некоторые данные, используя некоторые текстовые поля и dropdownlists. То, что я хочу сделать, это проверить эти текстовые поля и ddls с помощью jquery. Если все они пусты или не выбраны, я не хочу публиковать форму. Также я должен сказать, что у меня есть несколько почтовых процессов в этой форме. Каждый раз, когда я нажимаю любую кнопку внутри этой формы, функция jquery работает. Как я могу предотвратить это? Я пробовал эту реализацию с jquery bu, это не работает. Любая помощь будет назначена.ASP.NET Проверка элементов с помощью JQuery

HTML:

     <asp:Repeater ID="searchResultRepeater" runat="server"> 
          <ItemTemplate> 
           <form id="searchResultForm"></form> 
           <table border="1" align="center" style="border-color:#ff9900; width:400px; font-weight:bold; font-family:'Oswald', Arial, sans-serif;"> 
            <tr align="center"> 
             <td colspan="3"> 
              Search Results 
             </td> 
            </tr> 
            <tr align="center"> 
             <td>Category:</td> 
             <td colspan="2"><%#DataBinder.Eval(Container.DataItem,"CategoryName") %></td> 
            </tr> 
            <tr align="center"> 
             <td>Brand:</td> 
             <td colspan="2"><%#DataBinder.Eval(Container.DataItem,"BrandName") %></td> 
            </tr> 
            <tr align="center"> 
             <td>Model:</td> 
             <td colspan="2"><%#DataBinder.Eval(Container.DataItem,"ModelName") %></td> 
            </tr align="center"> 
            <tr align="center"> 
             <td>Primary Color:</td> 
             <td colspan="2"><%#DataBinder.Eval(Container.DataItem,"PrimaryColor") %></td> 
            </tr> 
            <tr align="center"> 
             <td>Secondary Color:</td> 
             <td colspan="2"><%#DataBinder.Eval(Container.DataItem,"SecondaryColor") %></td> 
            </tr> 
            <tr align="center"> 
             <td>Size:</td> 
             <td><%#DataBinder.Eval(Container.DataItem,"Size") %></td> 
             <td> 
              <asp:DropDownList ID="sizeUpdateDdl" runat="server"> 
               <asp:ListItem Value="">--Select--</asp:ListItem> 
               <asp:ListItem Value="8.5">8.5</asp:ListItem> 
               <asp:ListItem Value="9">9</asp:ListItem> 
               <asp:ListItem Value="9.5">9.5</asp:ListItem> 
               <asp:ListItem Value="10">10</asp:ListItem> 
               <asp:ListItem Value="10.5">10.5</asp:ListItem> 
               <asp:ListItem Value="11">11</asp:ListItem> 
               <asp:ListItem Value="11.5">11.5</asp:ListItem> 
               <asp:ListItem Value="12">12</asp:ListItem> 
               <asp:ListItem Value="12.5">12.5</asp:ListItem> 
               <asp:ListItem Value="13">13</asp:ListItem> 
               <asp:ListItem Value="13.5">13.5</asp:ListItem> 
               <asp:ListItem Value="14">14</asp:ListItem> 
               <asp:ListItem Value="15">15</asp:ListItem> 
              </asp:DropDownList> 
             </td> 
            </tr> 
            <tr align="center"> 
             <td>Price:</td> 
             <td>$<%#DataBinder.Eval(Container.DataItem,"Price") %></td> 
             <td><asp:TextBox ID="priceUpdateText" runat="server"></asp:TextBox></td> 
            </tr> 
            <tr align="center"> 
             <td>Quantity:</td> 
             <td><%#DataBinder.Eval(Container.DataItem,"Quantity") %></td> 
             <td><asp:TextBox ID="quantityUpdateText" runat="server"></asp:TextBox></td> 
            </tr> 
            <tr align="center"> 
             <td colspan="2"> 
              <asp:LinkButton ID="deleteLink" PostBackUrl='<%# string.Format("~/AdminPanel.aspx?sid={0}", Eval("ShoeID")) %>' OnClick="delete_Click" runat="server">DELETE</asp:LinkButton> 
             </td> 
             <td> 
              <asp:LinkButton ID="updateLink" PostBackUrl='<%# string.Format("~/AdminPanel.aspx?sid={0}", Eval("ShoeID")) %>' OnClick="update_Click" runat="server">UPDATE</asp:LinkButton> 
             </td> 
            </tr> 
           </table> 
          </ItemTemplate> 
         </asp:Repeater> 

Jquery скрипт:

$(document).ready(function() { 
    $('#form1').submit(function() { 
     var size = $('#sizeUpdateDdl').val(); 
     var color1 = $('#pColorUpdateDdl').val(); 
     var color2 = $('#sColorUpdateDdl').val(); 
     var price = $('#priceUpdateText').val(); 
     var quantity = $('#quantityUpdateText').val(); 

     var values = []; 

     values.push(size); 
     values.push(color1); 
     values.push(color2); 
     values.push(price); 
     values.push(quantity); 

     var check = 0; 

     values.forEach(function(entry) { 
      if(entry === ""){ 
       check = 0; 
      }else{ 
       check = 1; 
      } 
     }); 

     if(check === 0){ 
      alert("Please fill at least one field to update this product !"); 
      return false; 
     } 
    }); 
}); 
+0

Вы пытались отладить скрипт? –

+0

Нет никаких признаков моей функции jquery на консоли при попытке опубликовать форму, поэтому я не смог ее попробовать. – Tartar

ответ

0
values.every(function(entry) { 
     if(entry !== ""){ 
      check = 1; 
      return; 
     } 
    }); 
+0

В строке 4 я получаю сообщение об ошибке в visual studio 2012. Он говорит: «Не может быть перерыв за пределами цикла» – Tartar

+0

Я редактирую код, попробуйте это – sapphireNK

+0

Что он возвращает? – Tartar

Смежные вопросы