在我的html页面中有一个contenteditable div作为textarea:
def show(){
System.out.println "=== Activity ===";
def data = []
def job = Dailyjob.get(params.id as Long);
//preparing max and offset from params
Integer max = params.max ? params.int("max") : 10
Integer offset = params.offset ? params.int("offset") : 0
data = Dailyjobactivity.where {
daily_job == job
}.list([sort:'activity_datetime', order:'desc', max: max, offset: offset])
System.out.println "=== Data ==="+data;
render(view:view_name+'/jobactivity',model:[data:data,instanceTotal:data.size()])
}
我通过jquery“输入粘贴”
检测用户的输入<div id="txt" contenteditable="true"></div>
它在chrome中运行良好,但在IE中无效。谁能告诉我发生了什么? 感谢~~
答案 0 :(得分:1)
IE正在将event.type
作为paste
$('#txt').on('input paste',function(event){
if(event.type=='paste' || event.type=='input'){
alert("ok");
}
});
编辑。由于某些原因,我只用粘贴测试。
$('#txt').on('keyup paste',function(event){
alert("ok");
});
答案 1 :(得分:0)
我认为这是IE特有的问题。替代解决方案是使用焦点,键盘事件和模糊事件。您可以比较旧文本和新文本,以查看文本中是否存在更改。
刚刚找到了一个SO线程,给出的答案与我的答案排成一行;以及原始SO线程的链接。
$('#txt').on('focus', function() {
before = $(this).html();
}).on('blur keyup paste', function() {
if (before != $(this).html()) { $(this).trigger('change'); }
});
$('#txt').on('change', function() {alert('changed')});