我有两个输入[type = text]。
<input type=text id=inputOne>
<input type=text id=summary>
当#InputOne发生变化时,我想用#inputOne.value更新#summary.value(这是问题)。我无法解决的问题是“user”是没有直接访问/更改#inputOne ,所以它的模糊,键盘,更改,onmouseover等事件都没有启动,或者它们是,但我无法使它工作。
用户使用unknownFunction更改#inputOne.value,我无法修改,也无法访问。
<script>
...
unknownFunction(){
...
$("#inputOne").val(aDynamicValue);
}
</script>
我试过的基本jQuery函数如下。这不起作用:))
<script>
...
$("#inputOne").change(function(){
$("#summary").val("Value: "+$(this).val()+"...");
});
</script>
答案 0 :(得分:1)
如果您无法修改更新值的功能,则必须轮询源以进行更改。
setInterval(function() {
var inputOne = $('#inputOne'), summary = $('#summary'), previous = $inputOne.val();
return function() {
var current = inputOne.val();
if (current !== previous) {
summary.val('Value: ' + current + '...');
previous = current;
}
}
}(), 100);
这将检查输入每100毫秒进行一次更改,并在更新值时更新摘要。
答案 1 :(得分:0)
根据HTML5 spec,以编程方式更改输入元素的值应触发input
和change
事件。当更改元素的内容时发生input
事件,当提交时发生change
事件,例如,从元素中删除。
这表明绑定input
事件的处理程序应该比change
更好。试一试,看看它是否有效。
答案 2 :(得分:0)
这适用于所有浏览器和Jquery&lt; = v1.10
$('#inputOne').on('keyup', function () {
$("#summary").val("Value: "+$(this).val()+"...");
});
文本框输入字段更改事件会像您期望的那样触发,jQuery .Change事件仅在支持html5的浏览器上正常工作