2013-07-11 23 views
0

我有这样的代码这使内容我输入场为预览DIV区域:Jquery的KEYUP未检测含量的变化由JavaScript

JS

function fieldPreview() { 
$('.input').on('keyup', function() { 
    $('#' + $(this).data('id')).html(this.value); 
}); 
} 

HTML

<input class="input" type="text" name="title" placeholder="Job Title" data-id="title"> 
<div id="title"></div> 

我的问题来自于我的两个输入字段稍微复杂一些。一个字段使用谷歌地图自动提示。当我点击autosuggestion链接时,它会更新文本字段,但不会更新div中的预览,除非我实际通过添加或删除另一个字母来手动修改输入。

jQuery中有更好的方法来监视输入字段中的变化吗?这将允许我将该字段的内容放入div中,即使它已通过javascript放置在那里,而不是放在键盘上。

这里是jquery的清除输入字段的内容的一个例子,但它不被反映在DIV:http://jsfiddle.net/xDA9p/5/

+0

可能重复http://stackoverflow.com/questions/1948332/detect-all-changes-to- a-input-type-text-immediately-using-jquery) - 确保阅读关于通过JS检测更改的评论。 –

+0

基本上,当通过JavaScript更改值时,不会触发事件。在您更改的值后,您必须“手动”触发事件处理程序。 –

+0

另请参见[为什么使用val()设置select的值时,jquery更改事件不会触发?](http://stackoverflow.com/q/4672505/218196)。 –

回答

1

使用change paste keyup input事件。

$('.input').on('change paste keyup input', function() { 
    $('#' + $(this).data('id')).html(this.value); 
}); 
[使用JQuery检测所有变为 (立即)](的
+0

恐怕这仍然不适用于chrome中的Google自动更改输入内容 –