如何将文本从asp:textbox复制到asp.net webfroms aspx中的另一个asp:textbox

时间:2016-05-23 10:59:19

标签: asp.net webforms textbox copy

我一直想找几个小时的解决方案。

asp:文本框1:

<asp:TextBox runat="server" ID="code" placeholder="<%$ Resources:ErrorMessages, EnterCode %>" CssClass="enterCode"></asp:TextBox><br /> 

asp:textbox 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中。

textbox 2嵌入在引导程序弹出窗口中的jquery手风琴中。

我试过了:

aspx.cs中的简单:

code.text = code2.text;

链接到aspx文件的javascript文件中的一些jquery:

$("#buttonEnable2").click(function () {
        $('#code').val($('#code2').val());
        alert('test');

    });

上面的代码似乎根本不起作用,它甚至没有给我提醒。

4 个答案:

答案 0 :(得分:1)

问题是你在弹出窗口中使用手风琴来克隆弹出窗口内的所有内容,处理所有内容的ID。因此,当您在文本框中键入值时,它会将其附加到文本框的克隆,而不是实际的文本框。

这是解决方案:

function clickEnable2() {
    var txtBox1 = this.parentElement.getElementsByClassName("enterCode")[0].value;
    $("#MainContent_code").val(txtBox1);
    $("#MainContent_buttonEnable").click();
}
$("#MainContent_buttonEnable2").click(clickEnable2);

答案 1 :(得分:0)

此代码在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 %>" /> 希望它会有所帮助。

答案 2 :(得分:0)

您的文本框属于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());

答案 3 :(得分:0)

如果您在asp.net中使用母版页,更新面板等,文本框的ID将自动替换为动态ID,因此您可能需要执行以下操作,这将有助于 如果您不想将ClientIDMode更改为静态

首先声明一个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%>);

我希望这会对你有所帮助。