Div+contenteditable 模拟 textarea 及存在的问题

在网页端实现聊天功能时,大多会采用textarea来实现,但是当需要在textarea中显示表情/图片时,就不好实现了。这时候普遍的方法是给div添加contenteditable属性,来模拟textarea,而在div中显示图片及表情就可以轻松实现了。

The contenteditable global attribute is an enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:

  • true or the empty string, which indicates that the element must be editable;
  • false, which indicates that the element must not be editable.
    If this attribute is not set, its default value is inherited from its parent element.
Read more

jQuery 监听隐藏表单

设置了一个隐藏表单,其值由Ajax异步修改。前端需要实时监听该值,并由此进行相关操作。

<input type="hidden" value="" id="datas" name="datas">

正常的表单可以使用 .change() 事件监听其 value 的改变,而隐藏表单其 value 改变时不会触发 change() 事件!

解决方法:

当为隐藏表单赋值后,使用 trigger() 手动触发 change() 事件:

Read more