【问题标题】:ASP.NET Checking for elements using JqueryASP.NET 使用 Jquery 检查元素
【发布时间】: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


【解决方案1】:
values.every(function(entry) {
        if(entry !== ""){
            check = 1;
            return;
        }
  });

【讨论】:

  • 在第 4 行中,我在 Visual Studio 2012 中遇到错误。它说“不能在循环外中断”
  • 它返回了什么?
  • 我应该说我有多个这种形式的后期处理。每次我按下此表单内的任何按钮时,jquery 功能都会起作用。我怎样才能防止这种情况发生?
猜你喜欢
  • 2017-02-27
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 2018-08-01
  • 2011-08-12
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
相关资源
最近更新 更多