如何在 asp.net webfroms aspx 中将文本从 asp:textbox 复制到另一个 asp:textbox
how to copy text from an asp:textbox to another asp:textbox in asp.net webfroms aspx
我几个小时以来一直在努力寻找解决方案。
asp:文本框 1:
<asp:TextBox runat="server" ID="code" placeholder="<%$ Resources:ErrorMessages, EnterCode %>" CssClass="enterCode"></asp:TextBox><br />
asp:文本框 2:
<asp:TextBox runat="server" ID="code2" placeholder="<%$ Resources:ErrorMessages, EnterCode %>" CssClass="enterCode"></asp:TextBox><br />
按钮:
<asp:Button CssClass="btn btn-primary" runat="server" ID="buttonEnable2" OnClick="buttonEnable_Click" Text="<%$ Resources:UserMessages, Enable %>" />
我正在尝试将文本从文本框 2 复制到文本框 1。
文本框 2 嵌入在 bootstrap 弹出窗口的 jquery 手风琴中。
我试过:
aspx.cs中最简单的一个:
code.text = code2.text;
链接到 aspx 文件的 javascript 文件中的一些 jquery:
$("#buttonEnable2").click(function () {
$('#code').val($('#code2').val());
alert('test');
});
上面的代码似乎根本不起作用,它甚至没有给我一个警报。
此代码在 javascript
<script>
function Copy() {
var n1 = document.getElementById('code');
var n2 = document.getElementById('code2');
n2.value = n1.value;
}
</script>
你的按钮应该像
<asp:Button CssClass="btn btn-primary" runat="server" ID="buttonEnable2" OnClientClick="Copy()" OnClick="buttonEnable_Click" Text="<%$ Resources:UserMessages, Enable %>" />
希望对你有帮助。
您的文本框属于 asp.net
,它改变了文本框 ID
相对于 ContentPlaceHolder
的文本框。所以 jquery 无法找到文本框。
您可以使用 ClientIDMode="Static"
这样文本框的 ID 就不会改变。将此 属性 也用于其他文本框。
<asp:TextBox runat="server" ID="code" ClientIDMode="Static" placeholder="<%$ Resources:ErrorMessages, EnterCode %>" CssClass="enterCode"></asp:TextBox>
然后使用 jquery 将文本从一个文本框复制到另一个文本框。
$('#code').val($('#code2').val());
如果您在 asp.net 中使用母版页、更新面板等,文本框的 ID 将自动替换为动态 ID,因此您可能需要执行以下操作,这将有助于 如果你不想把ClientIDMode改成Static
首先声明一个 javascript 变量并将文本框的动态 ID 分配给它,JQuery 将是
$(document).ready(function(){
var txtBox1 = <%=code.ClientId%>;
var txtBox2 = <%=code2.ClientId%>;
});
现在您可以使用这两个变量将文本相互复制
$("#buttonEnable2").click(function () {
$('#' + txtBox1).val($('#' + txtBox2).val());
});
您也可以通过以下方式使用document.getElementById。
var n1 = document.getElementById(<%=code.ClientId%>);
var n2 = document.getElementById(<%=code2.ClientId%>);
希望对您有所帮助。
问题是您在弹出框内使用手风琴,它会克隆弹出框内的所有内容,处理所有内容的 ID。因此,当您在文本框中键入一个值时,它会将其附加到文本框的克隆,而不是实际的文本框。
解决方法如下:
function clickEnable2() {
var txtBox1 = this.parentElement.getElementsByClassName("enterCode")[0].value;
$("#MainContent_code").val(txtBox1);
$("#MainContent_buttonEnable").click();
}
$("#MainContent_buttonEnable2").click(clickEnable2);
我几个小时以来一直在努力寻找解决方案。
asp:文本框 1:
<asp:TextBox runat="server" ID="code" placeholder="<%$ Resources:ErrorMessages, EnterCode %>" CssClass="enterCode"></asp:TextBox><br />
asp:文本框 2:
<asp:TextBox runat="server" ID="code2" placeholder="<%$ Resources:ErrorMessages, EnterCode %>" CssClass="enterCode"></asp:TextBox><br />
按钮:
<asp:Button CssClass="btn btn-primary" runat="server" ID="buttonEnable2" OnClick="buttonEnable_Click" Text="<%$ Resources:UserMessages, Enable %>" />
我正在尝试将文本从文本框 2 复制到文本框 1。
文本框 2 嵌入在 bootstrap 弹出窗口的 jquery 手风琴中。
我试过:
aspx.cs中最简单的一个:
code.text = code2.text;
链接到 aspx 文件的 javascript 文件中的一些 jquery:
$("#buttonEnable2").click(function () {
$('#code').val($('#code2').val());
alert('test');
});
上面的代码似乎根本不起作用,它甚至没有给我一个警报。
此代码在 javascript
<script>
function Copy() {
var n1 = document.getElementById('code');
var n2 = document.getElementById('code2');
n2.value = n1.value;
}
</script>
你的按钮应该像
<asp:Button CssClass="btn btn-primary" runat="server" ID="buttonEnable2" OnClientClick="Copy()" OnClick="buttonEnable_Click" Text="<%$ Resources:UserMessages, Enable %>" />
希望对你有帮助。
您的文本框属于 asp.net
,它改变了文本框 ID
相对于 ContentPlaceHolder
的文本框。所以 jquery 无法找到文本框。
您可以使用 ClientIDMode="Static"
这样文本框的 ID 就不会改变。将此 属性 也用于其他文本框。
<asp:TextBox runat="server" ID="code" ClientIDMode="Static" placeholder="<%$ Resources:ErrorMessages, EnterCode %>" CssClass="enterCode"></asp:TextBox>
然后使用 jquery 将文本从一个文本框复制到另一个文本框。
$('#code').val($('#code2').val());
如果您在 asp.net 中使用母版页、更新面板等,文本框的 ID 将自动替换为动态 ID,因此您可能需要执行以下操作,这将有助于 如果你不想把ClientIDMode改成Static
首先声明一个 javascript 变量并将文本框的动态 ID 分配给它,JQuery 将是
$(document).ready(function(){
var txtBox1 = <%=code.ClientId%>;
var txtBox2 = <%=code2.ClientId%>;
});
现在您可以使用这两个变量将文本相互复制
$("#buttonEnable2").click(function () {
$('#' + txtBox1).val($('#' + txtBox2).val());
});
您也可以通过以下方式使用document.getElementById。
var n1 = document.getElementById(<%=code.ClientId%>);
var n2 = document.getElementById(<%=code2.ClientId%>);
希望对您有所帮助。
问题是您在弹出框内使用手风琴,它会克隆弹出框内的所有内容,处理所有内容的 ID。因此,当您在文本框中键入一个值时,它会将其附加到文本框的克隆,而不是实际的文本框。
解决方法如下:
function clickEnable2() {
var txtBox1 = this.parentElement.getElementsByClassName("enterCode")[0].value;
$("#MainContent_code").val(txtBox1);
$("#MainContent_buttonEnable").click();
}
$("#MainContent_buttonEnable2").click(clickEnable2);