2

我想使用多个文本字段在文本区域中显示文本。看看这个链接;左边有很多输入框,这个输入值显示在文本区域。我正在尝试使用该keyup事件。

这是我的代码:

<script>
    $('#name').keyup(function () {$('#fname').text($(this).val());'</br>'});
</script>

<script>
    $('#field').keyup(function () {$('.sname').text($(this).val());});
</script>

该函数工作正常,但是当在文本字段中写入第二个名称时,它会覆盖第一个输入。实时检查我的完整代码

4

1 回答 1

0

这是我的解决方案:

而不是使用key-up事件使用模糊,以便当第二个文本框失去焦点时,您可以获得理想的结果:

声明一个全局变量txt,然后在第一个文本框模糊事件上为其赋值,同时在模糊(焦点丢失)事件上附加第二个文本框的值。

key-up对您不起作用的原因是,最终您将需要从两个文本框中附加文本,而第一个文本框可以正常工作,但第二个文本框的按键将不断在每个文本框上附加文本带有换行符的键。

如果按键事件对您来说不是最重要的事情,那么这样的事情对您有用:

var txt ='';

$('#name').blur(function () {
    if ($('#field').val().length > 0){
        txt = $(this).val() + '\n' + $('#field').val();
    } else {
        txt = $('#name').val();
    }   
  $('#fname').text(txt);  
});
$('#field').blur(function () {
    txt = '';
    txt = $('#name').val() + '\n' + $(this).val();
  $('.sname').text(txt);
});

工作小提琴:http: //jsfiddle.net/5xHyY/

更新

现在更加同步了。基本上一秒钟的文本框模糊清除 txt 变量并再次分配值。检查还包括第一个文本框模糊。更新了 jsfiddle:http: //jsfiddle.net/5xHyY/4/

如果您仍然希望整个过程基于按键向上/向下事件。您将不得不使用多个DIVs而不是单个TextArea

于 2013-07-16T19:17:53.843 回答