1

我有两个输入 [type=text]。

<input type=text id=inputOne>
<input type=text id=summary>

当#inputOne 更改时,我想用#inputOne.value 更新#summary.value(这是问题)。我无法解决的问题是“用户”没有直接访问/更改#inputOne,因此它的模糊、按键、更改、onmouseover 等事件没有启动,或者它们是但我无法让它工作.

用户使用 unknownFunction 更改#inputOne.value,我无法修改,也无法访问。

<script>
  ...
  unknownFunction(){
     ...
     $("#inputOne").val(aDynamicValue);
  }
</script>

我尝试的基本 jQuery 函数如下。它不工作:)

<script>
   ...
   $("#inputOne").change(function(){
       $("#summary").val("Value: "+$(this).val()+"...");
   });
</script>
4

3 回答 3

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 毫秒检查一次输入是否有变化,并在值更新时更新摘要。

于 2012-12-25T21:58:28.190 回答
0

根据HTML5 规范,以编程方式更改输入元素的值应触发inputandchange事件。该input事件在元素的内容被更改时发生,该change事件在更改被提交时发生,例如从元素中跳出。

这表明为input事件绑定处理程序应该比change. 试一试,看看它是否有效。

于 2012-12-25T22:15:57.217 回答
0

这适用于所有浏览器和 Jquery <= v1.10

$('#inputOne').on('keyup', function () {
    $("#summary").val("Value: "+$(this).val()+"...");
});

文本框输入字段更改事件会按您的预期触发,jQuery .Change 事件仅在支持 html5 的浏览器上正常工作

于 2013-12-01T08:13:22.930 回答