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