如何在asp.net C#中将文本框文本更改为另一个文本框?

时间:2014-05-02 17:56:52

标签: javascript asp.net

我的网页上有两个文本框,分别是txtGivenName和txtDisplayName。现在我想通过使用keypress事件或keydown事件在txtGivenName上输入文本时在txtDisplayName上显示txtGivenName文本。 我已经尝试了一些代码来实现这一点,但无法在textbox2上获取textbox1值。

我的代码是:

<asp:TextBox ID="txtGivenName" runat="server" onkeypress = "copyText()"  ></asp:TextBox>

脚本代码是:

function copyText() {

var givenName = document.getElementById("txtGivenName");
var displayName = document.getElementById("txtDisplayName");
displayName =  givenName;

} 

但在txtGivenName上输入文本时没有任何反应。任何人都可以建议我实现这一目标或告诉我任何其他方法来实现这一目标? (注意:我不希望通过OnTextChanged事件执行此操作,Bcoz只会在文本输入结束后填充第二个文本框值。在第一个文本框中输入文本时我们需要同时更改第二个文本框上的文本)

感谢。

通过使用下面提到的脚本代码,我得到了此功能的确切答案。 解决方案:

function OneTextToOther() {

        var first = document.getElementById('<%= txtGivenName.ClientID %>').value;

        document.getElementById('<%= txtDisplayName.ClientID %>').value = first;

    }  

2 个答案:

答案 0 :(得分:1)

在浏览器中查看页面源代码 - &#34; txtGivenName&#34;和&#34; txtDisplayName&#34;不会是文本框的ID,因为ASP.NET会根据控件层次结构预先设置ID,因此它们是全局唯一的。

您有两个选项 - 使用"<%=txtGivenName.ClientID%>"在javascript中获取文本框的真实名称,或在文本框中设置ClientIdMode="static"以便保留ID。

function copyText() {
    var givenName = document.getElementById("<%=txtGivenName.ClientID%>");
    var displayName = document.getElementById("<%=txtDisplayName.ClientID%>");
    displayName.value =  givenName.value;
} 

答案 1 :(得分:0)

您可以尝试使用keyup事件,但我只知道Jquery方法。

<input class="one" type="text"/>
<input class="two" type="text"/>

$(".one").on("keyup", function(){
$(".two").val($(".one").val()); 
});

这是演示:http://jsfiddle.net/pUpZA/

PS:asp:textbox在编译时会转换为输入,所以它基本上是相同的。使用&#34; CssClass = one&#34;为你的asp:文本框