События изменения текста в jquery с Asp.net

У меня есть 2 текстовых поля, и если я пишу что-нибудь в textbox1, это должно отражаться немедленно в textbox2, а если я пишу что-либо в textbox2, оно должно отражаться в textbox1.

Так как мне это сделать? Я видел эту статью раньше, и как реализовать между двумя текстовыми полями?

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>

4 ответа

Решение
$('#TextBox1').keydown(function(){
    $('#TextBox2').val($(this).val())
})
$('#TextBox2').keydown(function(){
    $('#TextBox1').val($(this).val())
})
var $tbs = $("input[id^='TextBox']");
$tbs.keyup(function() {
    var that = this;
    $tbs.each(function() {
       $(this).val(that.value);
    }); 
});

Демо: http://jsfiddle.net/SGcEe/2/

Вышеупомянутый способ ссылки на текстовые поля не будет работать. 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());
});

Вы можете увидеть пример использования vanilla html на jsfiddle: http://jsfiddle.net/HUFGD/

Это может быть хорошим трюком

        $("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);
        }
    });
Другие вопросы по тегам