我写的来源有什么不对

时间:2011-05-20 14:47:13

标签: javascript jquery asp.net

我编写了一个代码,用于将文本框的值打印到另一个文本框但是我无法实现这一点,任何人都可以告诉我们哪里出错了,或者任何人可以给我等同的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>

5 个答案:

答案 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