[英]how to find textbox value in repeater when click on anchor link
我有一个带有文本框的重复器。现在我想在用户点击链接时获取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();
您可以将this
作为上下文传递:
<a href="javascript:Destroy(this, '<%#Eval("vendorId") %>','<%#Eval("ProductId") %>','<%#Eval("Attid") %>')">Destroy</a>
现在你必须在js函数中改变它:
function Destroy(el, vid, Pid, Attid) { // <----get this as el
var obj = {};
obj.vid = vid;
obj.pid = Pid;
obj.attid = Attid;
obj.pendingqty = $(el).prev().val(); // now assign it here
使用像HyperLink
这样的服务器端控件,并设置ID属性。 然后你可以使用this.id获取它的ID。 然后,只需用您的TextBox ID替换HyperLink ID。 这将为您提供每行文本框的客户端ID。
注意:this.id为anchor <a>
返回未定义的错误。 我不确定为什么在这个阶段。 这是我们使用Repeater或任何其他列表控件的常见技巧。
使用以下代替锚链接。
<asp:HyperLink ID="HyperLink1" onclick="javascript:alert(this.id.replace('HyperLink1', 'txtDestroyQty'));" runat="server">Destry</asp:HyperLink>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.