2011-11-01 52 views
4

我有2個文本框,如果我在textbox1中寫入anythng,它應該立即反映在textbox2中,如果我在textbox2中寫入任何內容,它應該反映在textbox1中。用Asp.net在jquery中更改文本

那麼我該怎麼做? 我以前見過這篇文章,以及如何在兩個文本框之間實現?

http://www.zurb.com/playground/jquery-text-change-custom-event

這裏是我的文本框:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 

回答

5
$('#TextBox1').keydown(function(){ 
    $('#TextBox2').val($(this).val()) 
}) 
$('#TextBox2').keydown(function(){ 
    $('#TextBox1').val($(this).val()) 
}) 
+0

感謝您的回覆和炒鍋! – coder

+0

它也適用於我。 –

2
var $tbs = $("input[id^='TextBox']"); 
$tbs.keyup(function() { 
    var that = this; 
    $tbs.each(function() { 
     $(this).val(that.value); 
    }); 
}); 

演示:http://jsfiddle.net/SGcEe/2/

+0

謝謝你非常快速回復並感謝演示。 – coder

1

引用文本框將無法正常工作的上述方式。 ASP.NET爲服務器控件生成一些標識。

要有一個相對乾淨的解決方案。我建議你將類添加到文本框中。

<asp:TextBox ID="TextBox1" CssClass="textbox1" runat="server"></asp:TextBox> 
<asp:TextBox ID="TextBox2" CssClass="textbox2" runat="server"></asp:TextBox> 

jQuery的代碼如下:

$('.textbox1').keyup(function() { 
    $('.textbox2').val($(this).val()); 
}); 

$('.textbox2').keyup(function() { 
    $('.textbox1').val($(this).val()); 
}); 

可以使用香草HTML在的jsfiddle看一個例子:http://jsfiddle.net/HUFGD/

+0

謝謝neelesh和是的Asp.Net控件是服務器端,我們需要改變它們,如你所說,我同意!我們可以通過使用<%= TextBox1.ClientID%>來引用它們 – coder

0

這可能是個好招

 $("input[id*='txtQty']").keyup(function (event) { 
     var oldValue = event.target.defaultValue; 
     var newValue = event.target.value; 
     if (jQuery.trim(newValue) == "") { 
      alert("Quantity can't be empty"); 
      $("input[id*='txtQty']").val(oldValue); 
     } 
    });