【发布时间】:2014-05-26 11:44:38
【问题描述】:
我有一个表单,它包含一个 ajaxtoolkit 的选项卡容器,在该选项卡容器的一个选项卡内部,我有一个转发器,它返回搜索过程的结果。在搜索过程之后,用户将能够通过使用一些文本框和下拉列表来更新一些数据。我想要做的是使用 jquery 验证这些文本框和 ddls。如果它们全部为空或未选中,那么我不想发布表格。另外我应该说我有多个这种形式的后期处理。每次我按下此表单内的任何按钮时,jquery 功能都会起作用。我怎样才能防止这种情况?我用 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;
}
});
});
【问题讨论】:
-
你试过调试你的脚本吗?
-
在尝试发布表单时,控制台上没有我的 jquery 功能的迹象,所以我无法尝试。
标签: javascript jquery asp.net validation