jquery / javascript将纯文本消息转换为文本输入字段

时间:2012-03-28 20:37:08

标签: javascript jquery html user-interface

我收到了以下要求:

创建一个纯文本字段,在单击编辑触发器时转换为文本输入元素。当离开输入元素时,文本将存储在数据库中,并且该字段将转换回具有新内容的纯文本字段。在输入中按下ESC时,将恢复最近的值。为此,我使用以下代码:

<div id="value"><span id="text">some text</span></div>
<div id="trigger">[EDIT]</div>
<div style="display: none;" id="storage">
  <input type="text" id="input" value="some text"/>
</div>

<script type="text/javascript">
  $('#trigger').click(function() {
    var t = $('#text').detach();
    var e = $('#input').detach();

    $('#storage').append(t);
    $('#value').append(e);
    e.focus();
  });

  $('#input').blur(function() {
    var t = $('#text').detach();
    var e = $('#input').detach();

    if (t.text() != e.val()) {
      $.getJSON(...);
    }

    $('#storage').append(e);
    $('#value').append(t);
  });

  $('#input').keyup(function(event) {

    if (event.which == 27) {
      $('#input').val($('#text').text());
      $('#input')[0].blur();
    }

  });

</script>

感谢@nnnnnn现在可行了。但是,是否有一种更简单的方法可以使用一些预先存在的API函数来实现它?

非常感谢。

2 个答案:

答案 0 :(得分:4)

使用jquery可编辑这里是一个链接

用于演示: http://www.appelsiini.net/projects/jeditable/default.html

用于插件主页 http://www.appelsiini.net/projects/jeditable

答案 1 :(得分:0)

我开发了一个可以满足您需求的插件:

$.convertTo

我希望这会有所帮助。