同步2个输入字段,可以使用jQuery完成吗?

时间:2012-01-10 12:39:59

标签: javascript jquery

当输入A被修改时,jQuery可以将一个输入字段的文本同步或复制到另一个输入字段吗?例如:

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

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

jQuery可以这样做吗?

4 个答案:

答案 0 :(得分:20)

试试这个:

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

对于jQuery 1.7+,请使用on

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

Example fiddle

- 2017年8月更新 -

The input event is now well supported,因此您可以使用它来代替keyuppaste事件的组合:

$("#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" />

答案 1 :(得分:3)

在写入期间,粘贴等值将被复制。 在jQuery&lt; 1.7而不是on使用bind

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

答案 2 :(得分:0)

迟到的答案,但我更喜欢这种方式,因为它不需要多个元素ID:

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

盖瑞特

答案 3 :(得分:-1)

是的,它可以。绑定按键或键盘事件并复制值:

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

或者,如果您只想在用户完成编辑后复制该值,请使用具有相同处理程序的blur事件。这样做还有一个额外的好处,即如果用户将文字粘贴到input_A,它也会被复制到input_B

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

这是working example with keyupone with blur