我编写了一个代码,用于将文本框的值打印到另一个文本框但是我无法实现这一点,任何人都可以告诉我们哪里出错了,或者任何人可以给我等同的JavaScript
来实现这个目标
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jQuery/1.2.6/jQuery.min.js">
</script>
<script type="text/javascript">
$('#TextBox1').keyup(function(){
$('#TextBox2').val(this.value);
});
</script>
</div>
</form>
答案 0 :(得分:2)
我看到两个潜在的问题。正如@Neal和@Nicola所指出的那样,你需要在
中包装任何引用DOM元素的东西。$(document).ready(funcution(){
// here
});
// or, this way, both are equivalent
$(function(){
});
其次,分配给文本框的ID很可能不是TextBox1和TextBox2。这是因为ASP.NET为客户端生成唯一的ID。他们很可能看起来像:
ctl00_TextBox1
或类似的东西。检查生成的页面HTML源以进行确认。此外,我发现FireFox的Firebug插件的JavaScript控制台或Chromes开发人员工具对于识别我的jQuery选择器是否实际返回任何内容非常有用。只需在其中一个浏览器中弹出控制台,然后执行:
$('#TextBox1');
如果你的选择器工作,你将得到一个包含1个元素的数组。如果没有找到任何东西,它只会返回一个空数组。
答案 1 :(得分:1)
我认为这应该有效。您需要$(document).ready(function(){});
包装器,以便在dom准备就绪后连接处理程序。我使用CDN的包含脚本进行了编辑
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js”></script>
<script>
$(document).ready(function(){
$('#TextBox1').keyup(function(){
$('#TextBox2').val($(this).val());
});
};
</script>
答案 2 :(得分:1)
你需要准备就绪(让你的js在DOM准备就绪时执行):
$(function(){
$('#TextBox1').keyup(function(){
$('#TextBox2').val(this.value);
});
});
答案 3 :(得分:0)
我尝试了很多,但似乎jquery
没有用,所以我得到了以下所需的
<script type="text/javascript">
function sync()
{
var n1 = document.getElementById('TextBox1');
var n2 = document.getElementById('TextBox2');
n2.value = n1.value;
}
</script>
答案 4 :(得分:-1)
由于文本框的内容位于<textarea>
标记而不是value
属性中,因此使用$(this).text()
而不是this.value
可能会有更好的运气:
$('#TextBox1').keyup(function() {
$('#TextBox2').text($(this).text());
});
此外,#TextBox12
!= #TextBox2
。