ورود

View Full Version : سوال: گرفتن مقدار تکست باکس داخل رپیتر با jquery



emilly
شنبه 17 شهریور 1397, 16:06 عصر
درود
دوستان من یه رپیتر دارم که داخل این رپیتره دوتا تکست باکس دارم با یه تگ a

این رپیترم 10 بار تکرار میشه یعنی 10 ردیف دارم که تو هرردیف دوتا تکست باکس و تگ a رو دارم

میخوام وقتی که برروی این تگ a کلیک بشه مقدار دو تا تکست باکس اون ردیف رو بهم نشون بده





<asp:Repeater ID="relatedrep" runat="server" DataSourceID="sds1">
<ItemTemplate>
<input id="txt1" value='<%#Eval("id1") %>' type="text">
<input id="txt2" value='<%#Eval("id2") %>' type="text" hidden="hidden">
<a onclick="sashowCustomer(this.value)">نمایش</a>
</ItemTemplate>
</asp:Repeater>




این رو نوشتم ولی فقط مقدار دو تا تکست باکس ردیف اول رو میارم :



var var1 = $("input[id*='txt1']").val();
var var2 = $("input[id*='txt2']").val();
alert(var1 +" , "+var2);

Tekyegah
شنبه 17 شهریور 1397, 20:39 عصر
سلام
من با Repeater کار نکردم و برای ساخت جدول ها مستقیم کد HTML می سازم .

اما فکر میکنم نتیجش میشه همون خروجی Repeater شما .

برای اینکه بتونید به اون تگ a ( بهتره button های HTML استفاده کنید ) دسترسی داشته باشید باید موقع ساختش یه ID منحصر به فرد بهش بدید و همچنین به اون Textbox ها همون کد رو بدید چون کدی که ریپیتر شما میسازه همه ID های input ها txt1 و txt2 هستن .



<asp:Repeater ID="relatedrep" runat="server" DataSourceID="sds1">
<ItemTemplate>
<input id="txt1_{id}" value='<%#Eval("id1") %>' type="text">
<input id="txt2_{id}" value='<%#Eval("id2") %>' type="text" hidden="hidden">
<button id="show_{id}">نمایش</button>
</ItemTemplate>
</asp:Repeater>



به جای {id} مقدار ID مورد نظرتون باید قرار بگیره .

کد جی کوری هم اینطوری میشه :



$("button[id*='show_']").click(function () {
var n = this.id.split("_");
s = n[1]
alert($("#txt1_" + s).val())
});

kamranetemadi
سه شنبه 20 شهریور 1397, 14:16 عصر
سلام
این میکش به این دلیل هست که id ها تکراری هست

emilly
چهارشنبه 21 شهریور 1397, 10:00 صبح
دوستان سپاس به این شکل حل شد




<asp:Repeater ID="relatedrep" runat="server" DataSourceID="sds1">
<ItemTemplate>
<input id="txt1" value='<%#Eval("id1") %>' type="text">
<input id="txt2" value='<%#Eval("id2") %>' type="text" hidden="hidden">
<a href="#" onclick="Javascript:show(this,'<%#Eval("id") %>')">نمایش</a> </ItemTemplate>
</ItemTemplate>










<script>
function delpro(anchorObj, vid) {
var var1 = $(anchorObj).closest('div').find("input[id*='txt1']").val();
var var2 = $(anchorObj).closest('div').find("input[id*='txt2']").val();
alert(var1 , var2);
}
</script>

Tekyegah
چهارشنبه 21 شهریور 1397, 16:54 عصر
سلام ، شاید با این کار مشکلتون حل شده باشه ، اما روشتون غیر استاندارد هست .