单击锚链接时如何在转发器中查找文本框值

时间:2016-05-19 05:34:30

标签: javascript jquery asp.net

我有一个带有文本框的重复器。现在我想在用户点击链接时获取textbox(txtDestroyQty)的值。

<asp:Repeater ID="rptDestroy" runat="server"  >
    <ItemTemplate>
        <tr>
            <td><%#Eval("productName") %></td>
            <td><%#Eval("ProductId") %></td>
            <td><%#Eval("Attid") %></td>
            <td><%#Eval("vname") %></td>
            <td><%#Eval("PendingQty") %></td>
            <td>
                <asp:TextBox ID="txtDestroyQty" CssClass="txt" runat="server"></asp:TextBox>
                <a href="javascript:Destroy('<%#Eval("vendorId") %>','<%#Eval("ProductId") %>','<%#Eval("Attid") %>')">Destroy</a>
            </td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

我有这个jQuery:

function Destroy(vid, Pid, Attid) {
    var obj = {};
    obj.vid = vid;
    obj.pid = Pid;
    obj.attid = Attid;
    obj.pendingqty = pendingqty;
    $.ajax({
        type: "POST",
        url: "/stocks/Rejection.aspx/DestroyItem",
        data: JSON.stringify(obj),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {

            if (data.d == "Y")
                window.location.href = '/stocks/rejection.aspx';
            else
                alert('Not Destroyed');

        },
        error: function (result) {
            alert('went wrong');
        }

    });
}

我试过这个

var pendingqty = $('#txtDestroyQty').val();
var value = $(this).closest('tr').find('input.txt').val();

2 个答案:

答案 0 :(得分:0)

您可以将"Parent"作为上下文传递:

this

现在你必须在js函数中更改它:

<a href="javascript:Destroy(this, '<%#Eval("vendorId") %>','<%#Eval("ProductId") %>','<%#Eval("Attid") %>')">Destroy</a>

答案 1 :(得分:0)

使用HyperLink等服务器端控件并设置ID属性。然后你可以使用this.id获取它的ID。然后,只需用您的TextBox ID替换HyperLink ID。这将为您提供每行文本框的客户端ID。

注意:this.id返回锚<a>的未定义错误。我不确定为什么在这个阶段。这是我们使用Repeater或任何其他列表控件的常见技巧。

使用以下内容代替您的锚链接。

<asp:HyperLink ID="HyperLink1" onclick="javascript:alert(this.id.replace('HyperLink1', 'txtDestroyQty'));" runat="server">Destry</asp:HyperLink>