2012-01-10 19 views
11

jQuery, A girişi değiştirildiğinde, bir giriş alanının metnini diğerine senkronize edebilir veya kopyalayabilir mi? Örneğin:2 giriş alanını senkronize edin, jQuery kullanarak yapılabilir mi?

<input id="input_A" type="text" /> ...If I type something here 

<input id="input_B" type="text" /> ... It will be copied here 

jQuery Bunu yapabilirsiniz?

+0

jQuery eklentisi: https://github.com/ain/jquery-fieldsync –

cevap

17

bu deneyin: jQuery için

$("#input_A").bind("keyup paste", function() { 
    $("#input_B").val($(this).val()); 
}); 

on kullanmak 1.7+:

$("#input_A").on("keyup paste", function() { 
    $("#input_B").val($(this).val()); 
}); 

Example fiddle

Güncelleme Ağustos 2017

The input event is now well supported, her iki keyup ve paste olayları birleştirerek yerine o kullanabilmesi:

$("#input_A").on("input", function() { 
 
    $("#input_B").val(this.value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="input_A" type="text" /> 
 
<input id="input_B" type="text" />

+0

'paste' olayını unutma ' –

+0

Sadece' $ this 'için açılış dirseğini eksik. – jabclab

+0

Teşekkürler çocuklar, güncellendi. –

2

, yapıştırma yazma sırasında, vb değeri kopyalanacaktır. jQuery < 1.7 yerine onbind kullanın.

$("#input_A").on("paste keyup", function() { 
    $("#input_B").val($(this).val()); 
}); 
+0

"Odak" gereksizdir ve değer değiştirilmeden önce "tuş kilidi" gerçekleşir. Rory'nin doğru yolu var. –

-1

Evet, yapabilir. yalnızca kullanıcı o aynı işleyicisi ile bulanıklık olayını kullanmak düzenlemeyi bitirdikten sonra değeri kopyalanamaz istiyorsanız,

$('#input_A').keyup(function() { 
    $('#input_B').val($(this).val()); 
}); 

Veya: Bir tuşa basma veya keyUp olayı bağlayın ve değer üzerinde kopyalayın. Bu, kullanıcının input_A içine metin yapıştırması durumunda, input_B içine de kopyalanacaktır.

$('#input_A').blur(function() { 
    $('#input_B').val($(this).val()); 
}); 

İşte working example with keyup ve one with blur bir erkek.

-1

Geç cevap, ancak birden çok eleman kimlikleri gerektirmediğinden bu şekilde tercih:

$('input.sync').on('keyup paste', function() { 
    $('input.sync').not(this).val($(this).val()); 
}); 

Garrett

iki alanın değerlerini senkronize etmek için
İlgili konular