【问题标题】:Is it advisable to use ContentEditable for a web form?是否建议将 ContentEditable 用于 Web 表单?
【发布时间】:2011-08-15 06:28:52
【问题描述】:

我想制作一种表单类型的编辑器,它可以直接在页面上编辑文本,并在每个字段的光标移出时提交更改。没有字体或样式更改,只有直框。

我看到了一些类似JEditable 的东西,但是这些框和按“确定”提交的需要似乎有点不吸引人且不直观。

我想知道是否将contentEditable="true" 应用于每个元素。我想这将实现相同的效果。但是,由于它不是带有输入的表单,我想我将不得不通过 javascript 提交更改,但这对我的情况是可行的。 (这似乎也比为 JEditable 或类似的东西担心每个元素的 javascript 更简单。

这是一个合理的解决方案吗?我不担心移动浏览器对网站这​​个特定部分的支持(希望 iOS5 会支持它或其他东西......)。

【问题讨论】:

  • ContentEditable 可以正常工作,但如果它不是输入框,则用户输入不友好。最好的做法是在浮动和隐藏的 div 中有一个 textarea,然后将其移动到编辑的位置,作为顶部元素。当然,您还需要将文本从当前元素复制到文本框,然后使其消失和/或在输入等时提交。
  • JEditable可以配置为没有按钮,但是提交onblur。

标签: html contenteditable inline-editing


【解决方案1】:

在代码方面,它需要看起来像这样:

$(".YourElementClassHere").click(function () { 
   $("#YourTextArea").position($(this).position());
   $("#YourTextArea").css("display", "block");
});

$("#YourTextArea").click(function() {
  if ( event.which == 13 ) {
     $("#YourTextArea").css("display", "none");
     // Do something to commit this: $("#YourTextArea").text();
  }
});

顺便说一句,这是 jQuery 语法,适用于不应该知道这一点的任何人。 我希望这会有所帮助,因为我有点生疏,这个 javascript 可能需要一些改动。

【讨论】:

  • 我可以使用它。我想知道是否有任何合理的方法可以让输入接管文本框的样式,使其看起来无缝。我可以用我想象的 jQuery 来获取特定的样式..
  • 我不确定( event.which == 13 ) 在做什么?
  • 是的,这是可能的,但有时使用 textareas 之类的东西可能非常复杂,但是您可以使用 javascript 进行与使用常规 css 完全相同的样式。 event.which 是一个 JQuery 汇编,将不同浏览器检测按键的不同方式合二为一,按键 13 为回车,您可以在网上查找其他按键。很抱歉回复得太晚了。
猜你喜欢
  • 2015-08-19
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
相关资源
最近更新 更多