我有以下请求:的jquery/JavaScript的转换纯文本消息转换为文本输入字段
上创建的编辑触发点击时转变成一个文本输入元件的纯文本字段。当离开输入元素时,文本将被存储在数据库中,并且该字段将被转换回带有新内容的纯文本字段。当在输入中按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函数?
非常感谢。
不应该'$ {'#someActiveInput'}。focus();'是'$('#someActiveInput')。focus();'? – j08691 2012-03-28 20:38:42
也许有点太晚了(已经工作了12个小时),但我看不到我的版本和你的版本有什么区别?尽管如此 - 这仅仅是一个例子 - 它是如何工作的 - 所以这不是问题的部分;) – LordHelmchen 2012-03-28 20:44:15
大括号与括号之间的关系。并不是说这是一个解决方案,而只是一个关于这种方式是错字还是故意的问题。 – j08691 2012-03-28 20:47:03