如何使用Jquery从中继器内的文本框中选择文本
How to select the text from my textbox inside a repeater using Jquery?
我有一个中继器,里面是一个文本框,包含我从数据库中获得的数据。当然,在运行时,它会生成大量数据,也就是说会生成大量文本框。
<asp:Repeater ID="rpter" runat="server">
<ItemTemplate>
<fieldset>
<legend>
<asp:Label ID="lblLegend" runat="server" Text='<%#DataBinder.Eval(Container,"DataItem.Name")%>' Font-Bold="true" />
</legend>
<div style="border: single, 1px;">
<div>
<asp:TextBox ID="txtMessage" runat="server" Text='<%#DataBinder.Eval(Container,"DataItem.Message")%>' Width="100%" TextMode="MultiLine"></asp:TextBox>
</div>
<div>
<asp:Button ID="btnCopy" runat="server" Text="Copy" CommandName="Copy" OnClientClick="copyClipboard()" />
</div>
</div>
</fieldset>
</ItemTemplate>
</asp:Repeater>
我想要的是在单击复制按钮时从文本框中选择除复制按钮之外的文本,以便将其复制到剪贴板上。。
function copyClipboard() {
CopiedTxt = document.selection.createRange();
CopiedTxt.execCommand("Copy");
}
我必须编辑您的ASP代码,并将CssClass="txtMessage"添加到TextBox中
还有CssClass="btnCopy"到按钮
并删除了OnClientClick="copyClipboard()",因为我们将在jQuery中处理如下:
ASP:-
<asp:Repeater ID="rpter" runat="server">
<ItemTemplate>
<fieldset>
<legend>
<asp:Label ID="lblLegend" runat="server" Text='<%#DataBinder.Eval(Container,"DataItem.Name")%>' Font-Bold="true" />
</legend>
<div style="border: single, 1px;">
<div>
<asp:TextBox ID="txtMessage" runat="server" CssClass="txtMessage" Text='<%#DataBinder.Eval(Container,"DataItem.Message")%>' Width="100%" TextMode="MultiLine"></asp:TextBox>
</div>
<div>
<asp:Button ID="btnCopy" runat="server" CssClass="btnCopy" Text="Copy" CommandName="Copy" />
</div>
</div>
</fieldset>
</ItemTemplate>
</asp:Repeater>
不要忘记包含jQuery库:
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
jQuery将处理对类为btnCopy的任何项目的所有单击,并在按钮
的父级的父级中查找.txtMessage项目并选择TextBox
中的文本返回false,这样你的点击就不会带你去任何地方。。。
jQuery:-
$(function () {
$(".btnCopy").click(function (e) {
$(this).parent().parent().find(".txtMessage").select();
return false;
});
});
我希望这对你有用,这是屏幕截图:
http://i59.tinypic.com/5ujvc9.jpg
http://i62.tinypic.com/35d4y7l.jpg
祝你好运;)
您需要将this
传递给函数copyClipboard
。所以你的按钮代码看起来像这个
<asp:Button ID="btnCopy" runat="server" Text="Copy" OnClientClick="copyClipboard(this)"/>
和一个类到你的div包装你的文本框,
<div class="texdiv">
<asp:TextBox ID="txtMessage" runat="server" Text='<%#DataBinder.Eval(Container,"DataItem.Message")%>' Width="100%" TextMode="MultiLine"></asp:TextBox>
</div>
而你的js
功能就是
function copyClipboard(th) {
alert($(th).parents().prevAll('.texdiv').find('*[id^=rpter_txtMessage]').val());
}
在客户端单击按钮时,您需要找到它以前的文本框,然后才能获得它的值它将为您提供相应的textbox
值
$(function () {
$(".copybtn").click (function (e) {
Var txtMsgVal = $(this).parent().parent().find(".txtMsg").text();
// Do something with the txtMsgVal here
alert(txtMsgVal);
});
});
您只需要在按钮和输入(消息)上都有一个class属性。
注意:我在这个答案中使用了jQuery,所以您必须在源代码中包含jQuery库。
祝你好运;)
相关文章:
- 或者在表单上选择默认选项文本(选择1)
- Javascript:包括特殊字符的文本选择
- 大写--文本区域中的文本选择
- 点击
- 项目时的文本选择
- 通过 javascript 在每次点击时动态禁用文本选择
- 文本框的 CSS 文本选择覆盖
- 单击“img”源时,文本选择未清除
- 链接内的内容可编辑块,如何防止重定向,但让文本选择插入符号位置更改
- 当我单击画布并拖动鼠标时,光标将变为文本选择光标.我该如何防止这种情况发生
- 重新启用文本选择(Opera、webkit等)
- 绝对元素后面的元素上的文本选择
- 禁用JavaScript中的文本选择器
- 从网站中删除文本选择限制的脚本
- Javascript/jQuery Load 函数,文本选择
- HTML 浏览器的“文本”选择:选择整个单词(如在 iBooks 中)
- 锁定页面文本选择
- 如何删除文本选择中的子元素
- 如何将选定的“文本”选择框发送到按钮上的函数,以便使用角度进行 ng 单击
- 锤击.JS桌面文本选择和滑动冲突
- j查询启用/禁用文本选择错误