我有一个带有文本框的重复器。现在我想在用户点击链接时获取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();
答案 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>