我可以附加书面东西的盒子

时间:2011-03-26 11:48:16

标签: javascript html css textarea chat

我必须进行伪聊天,这会在按下按钮到textarea上方的一个框后添加来自textarea的文本。到目前为止,我的代码看起来像这样

<form name="frm1" id="puts">
  <textarea name="txt1" COLS=15 ROWS=1></textarea>
  <a class="Sisesta Nupp" id="nupp5" href="#"
     onclick="alert(document.frm1.txt1.value) +(document.frm1.txt1.value='')"">
    <span>Sisesta </span>
  </a>

但是如何将它写在textarea上方的一个方框中,以便它不会从上面的方框中删除以前写过的东西?如果文字不再合适,如何绘制一个可以制作卷轴的框?当我写一些东西时,它应该用一个列表中的随机句子回答我。

edit1:由于html是垃圾,而另外两个解决方案(很好)在我的代码中不起作用,我想知道,我怎样才能将document.frm1.txt1.value附加到一个方框中在我的textarea上面?

2 个答案:

答案 0 :(得分:2)

使用jQuery创建很容易:

jQuery代码:

$('#button').click(function() {
   $('#result').append('<br />'+$('#text').val());
   $('#text').val('').focus(); 
});

HTML:

<textarea id='text'></textarea>
<input type='button' value='send' id='button'>
<div id='result'></div>

Here you go! jsFiddle - 编辑: - revised

答案 1 :(得分:2)

好吧,我有几分钟要杀人(等待IM回复),所以我想出了这种可能性,使用稍加修改的html:

<div id="box">
    <ol id="chat"></ol>
</div>
<form action="#" method="post">
    <textarea id='text'></textarea>
    <input type='submit' value='send' id='button'>
</form>
<div id='result'></div>

和jQuery:

$('#button').click(
    function(){
        var text = $('#text').val();
        $('<li />')
            .text(text)
            .appendTo('#chat');
          $('#text').val('');
        return false;
    });

$('#text').keypress(
    function(e){
        if (e.keyCode == 13 && e.shiftKey == true){
           // might be a better way to do 'nothing'...
        }
        else if (e.keyCode == 13) {
            $('#button').click();
            return false;
        }
    });

JS Fiddle demo

<小时/> 已编辑以链接到经过修改的演示(针对'经典IM'外观):JS Fiddle