1

我有一个包含图像按钮的gridview。单击该图像按钮时,会填充另一个网格,其中包含一些文本框。如果插入在文本框中的值大于 gridview 的列值之一,我想对那些失去焦点的文本框进行 JQuery 验证。该列值正在使用绑定字段来绑定数据。

如何使用 Jquery 实现这一点?我是 JQuery 的新手。

我试过这样的事情。

<script type="text/javascript" language="javascript">
    $(function () {

        var GridView = $('#grdSalesOrder tr').each(function () {
            var btn = $(this).find('img[id*=imgdesign1]');
            alert(btn);
        });

    });
</script>

首先,我找到了该网格视图的主网格视图和图像按钮。单击按钮时,会填充另一个网格视图。所以我认为我应该编写代码以在此图像按钮的单击事件上找到另一个网格,因为在页面加载事件时,另一个网格将不可用。但是在这段代码中,我没有得到主网格视图中的按钮。如果我犯了任何错误,请编辑我的 Jquery。

4

2 回答 2

1

这是一些您可以配置以满足您的需求的 JQuery。

它假定您已将 CssClass 添加到网格视图中,如下所示:

<asp:GridView ID="Products" runat="server" CssClass="grid_view">

文本框的 CssClass 如下所示:

<asp:TextBox ID="txtUserInput runat="server" CssClass="user_input" />

并且绑定的列值在您的标题行中。

因此,如果您的网格视图中的 html 表格输出与此类似

<table class="grid_view" cellspacing="0" rules="all" border="1" id="Products" style="border-collapse:collapse;">
<tr>
    <th scope="col">12</th><th scope="col">4</th><th scope="col">21</th>
</tr>
<tr>
    <td>3</td><td>1</td><td>5</td>
</tr>
<tr>
    <td>3</td><td>1</td><td>5</td>
</tr>
<tr>
    <td>3</td><td>1</td><td>6</td>
</tr>
<tr>
    <td>3</td><td>1</td><td>5</td>
</tr>
<tr>
    <td><input type="text" class="user_input" /></td>
    <td><input type="text" class="user_input" /></td>
    <td><input type="text" class="user_input" /></td>
<tr>
</table>

你可以使用这个 JQuery

<script type="text/javascript">
    $('.user_input').blur(function() {
    var enteredVal = $(this).val();
    var currentCell = $(this).closest("td");

    col = $(currentCell).prevAll().length;
    var obj = $(this).parents('table').find('th').eq(col);
    var hrVal = obj.text();

    // your validation here
    if (parseInt(enteredVal,10) > parseInt(hrVal,10)) {
        alert('too big');
    }
});​
</script>

​<br> 请参阅此小提琴以获取工作示例。

于 2012-06-08T09:27:36.083 回答
0

这里的诀窍是如何在网格上找到您希望的每个元素。没有 html 代码,我可以给你一些点击开始。

此代码是选择 GridView 中的所有文本框,ID 为 YourGridViewID

jQuery('#<%=YourGridViewID.ClientID%> input[type=text]')

添加您设置的丢失焦点

jQuery('#<%=YourGridViewID.ClientID%> input[type=text]').blur{
    // add the code for the validation
});

现在,如果您从网格中写出两行,也许我可以帮助您更多地找到其他数据。

于 2012-06-08T08:14:56.920 回答