2015-02-05 38 views
1

我需要或者在同一時間或儘快複製在字段中輸入的文本(無論是鍵入,粘貼或從瀏覽器自動填充),並粘貼在另一個領域因爲用戶更改爲另一個字段。字段複製文本到另一個自動

如果用戶刪除field_1文本,也應該得到自動field_2刪除。

我已經試過,但它不工作:

<script type="text/javascript"> 
$(document).ready(function() { 

function onchange() { 
var box1 = document.getElementById('field_1'); 
var box2 = document.getElementById('field_2'); 
box2.value = box1.value; 
} 
}); 
</script> 

任何想法?

+0

你綁定'onchange'事件什麼? – tymeJV 2015-02-05 18:38:25

回答

3

你幾乎沒有上...的功能是正確的,你就必須把它分配給了change事件輸入:

<script type="text/javascript"> 
    $(document).ready(function() { 

     function onchange() { 
      //Since you have JQuery, why aren't you using it? 
      var box1 = $('#field_1'); 
      var box2 = $('#field_2'); 
      box2.val(box1.val()); 
     } 
     $('#field_1').on('change', onchange); 
    }); 

+0

它很酷,但可能會優化=) – DanielPanic 2015-02-05 18:44:24

+0

@LcSalazar謝謝。現在它完美的工作! – 2015-02-05 18:54:46

+0

@DanielPanic你能否告訴我們如何優化? – 2015-02-05 18:55:23

0

呼叫onchange()方法的第一個元素onblur

<input type="text" id="field_1" onblur="onchange()"/> 
0

嘗試keyup事件

<input type="text" id="box_1"/> 
<input type="text" id="box_2"/> 
$('#box_1').keyup(function(){ 

$('#box_2').val($(this).val()); 

}) 
0

嘗試類似:

$(document).ready(function() { 
    $('#field_1').on('change', function (e) { 
     $('#field_2').val($('#field_1').val()); 
    }); 
}); 

繼承人小提琴:http://jsfiddle.net/otwk92gp/

0

您需要到第一輸入綁定到一個事件。像這樣的東西會工作:

$(document).ready(function(){ 
 
    $("#a").change(function(){ 
 
     var a = $("#a").val(); 
 
     $("#b").val(a); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="text" id="a" /> 
 
<input type="text" id="b" />

0

$(document).ready(function() { 
 
$('.textBox1').on('change', function() { 
 
    $('.textBox2').val($(this).val()); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="textBox1"/> 
 
<input type="text" class="textBox2"/>

2

如果您正在使用jQuery,這是很容易 - 你只需要註冊右側事件正確的函數:)

下面的代碼:

<input id="foo" /> 
<input id="bar" /> 

$(function(){ 
    var $foo = $('#foo'); 
    var $bar = $('#bar'); 
    function onChange() { 
     $bar.val($foo.val()); 
    }; 
    $('#foo') 
     .change(onChange) 
     .keyup(onChange); 
}); 

的jsfiddlehttp://jsfiddle.net/6khr8e2b/

+0

額外的好處是你可以同時使用'change'和'keyup'事件 – 2015-02-05 18:45:25

0

如果你想第二字段的值更新爲同一時間,第一個,你可以用超時處理這個問題。

每一個鍵被按下時,它將執行的執行下一個堆棧上checkValue功能。所以在DOMfield1的值時,調用此函數將已經被更新。

var $field1 = $("#field_1"); 
 
var $field2 = $("#field_2"); 
 

 
$field1.on("keydown",function(){ 
 
    setTimeout(checkValue,0); 
 
}); 
 

 
var v2 = $field2.val(); 
 
var checkValue = function(){ 
 
    var v1 = $field1.val(); 
 
    if (v1 != v2){ 
 
     $field2.val(v1); 
 
     v2 = v1; 
 
    } 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input id="field_1" value=""/><br/> 
 
<input id="field_2" value=""/>

相關問題