2011-09-22 71 views
17

大家好,我是jQuery的新手。假設我有兩個HTML文本框。我怎麼能做到這一點,如果我在文本框A中寫入,那麼相同的值將發送到文本框B,如果我在B中寫入,那麼它將轉到A並與刪除文本相同。這怎麼能在jQuery中完成?如何同步兩個文本框的表單值?

回答

38

這是一個更加動態的方式:

<input class="copyMe" type="text" /> 
<input class="copyMe" type="text" /> 
<input class="copyMe" type="text" /> 
<input class="copyMe" type="text" /> 

,代碼:

$(document).ready(function(){ 
    $(".copyMe").keyup(function(){ 
     $(".copyMe").val($(this).val()); 
    }); 
}); 

證明概念:http://jsfiddle.net/MQXCt/

+0

感謝的人你的解決方案能夠在n文本框工作。感謝幫助。 –

+1

這真的很酷! –

+1

很酷,但是在將文本複製到文本字段中時(通過使用鼠標),此解決方案不起作用。在這種情況下,可以使用.change() – zarathustra

5

這是很容易的:

$("#textBoxA").keyup(function(){ 
    $("#textBoxB").val($("#textBoxA").val()); 
}); 

$("#textBoxB").keyup(function(){ 
    $("#textBoxA").val($("#textBoxB").val()); 
}); 
1

你必須把每個文本框的onchange事件函數調用,這將需要一個框的值,並把它放在其他。

0

我今天就遇到了這個難題。我做了一個小插件,使代碼更易讀,並處理文本輸入,但也選擇fe。

當包括插件,你可以簡單地使用$("selector").keepInSync($("otherselector"));

$.fn.keepInSync = function($targets) { 
 
    // join together all the elements you want to keep in sync 
 
    var $els = $targets.add(this); 
 
    $els.on("keyup change", function() { 
 
    var $this = $(this); 
 
    // exclude the current element since it already has the value 
 
    $els.not($this).val($this.val()); 
 
    }); 
 
    return this; 
 
}; 
 

 
//use it like this 
 
$("#month1").keepInSync($("#month2, #month3")); 
 
$("#text1").keepInSync($("#text2"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h1>Two way sync</h1> 
 
<select id="month1"> 
 
    <option value="">Please select a moth</option> 
 
    <option value="jan">January</option> 
 
    <option value="feb">February</option> 
 
    <option value="mar">March</option> 
 
</select> 
 
<select id="month2"> 
 
    <option value="">Please select a moth</option> 
 
    <option value="jan">1</option> 
 
    <option value="feb">2</option> 
 
    <option value="mar">3</option> 
 
</select> 
 
<select id="month3"> 
 
    <option value="">Please select a moth</option> 
 
    <option value="jan">Jan</option> 
 
    <option value="feb">Feb</option> 
 
    <option value="mar">Mar</option> 
 
</select> 
 
<br> 
 
<input type="text" id="text1"> 
 
<input type="text" id="text2">

相關問題