我有这个函数,假设通过diff textarea传递数据,但是,游标一直跳到文本的末尾。
function KeepReferencesInSync(referenceInput) {
$(referenceInput).keyup(function () {
$("input[name=Reference]").val($(this).val());
}
)}
答案 0 :(得分:1)
我有一个解决方案。
我需要记录光标位置并设置[setSelectionRange]以确保光标不会跳转。见下文。
function KeepReferencesInSync(referenceInput) {
$(referenceInput).on('keyup', function () {
//get selection position
var start = this.selectionStart,
end = this.selectionEnd;
$("input[name=Reference]").val($(this).val());
//set the range
this.setSelectionRange(start, end);
})
}
答案 1 :(得分:0)
您可以尝试这种方法。它不是最先进的,但是有效。
// Create a list of zone/input/ele
var zoneList = [$('#zone1'),$('#zone2'),$('#zone3')];
// For each zone
$.each(zoneList, function(index, zoneForEvent){
// Attach keyup event
zoneForEvent.on('keyup',function(){
// Get root zone info who trigger event
var rootZoneId = this.id;
var rootZoneValue = this.value;
// Loop on each zone
$.each(zoneList, function(index, zoneDestination){
// If zone destination is not root zone
if (zoneDestination.id !== rootZoneId) {
// Copy value of root element
zoneDestination.val(rootZoneValue);
}
});
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="zone1"></textarea>
<input type="text" id="zone2"></input>
<textarea id="zone3"></textarea>
&#13;