0

我有以下 jQuery 触发 keyup 的功能。

$(document).ready(function() {
  $("#calc").on("keyup", "input[type='text']", function() {
  calculateSum(this);
  });
calculateSum();
});

函数 calculateSum 在这里找到:http: //jsfiddle.net/pmetzger/ANp8u/2/

如果我将一个值作为默认值加载到输入字段中,显然calculateSum 不会触发,因为它不是keyup。

不过,我确实需要有时能够将默认值加载到输入字段中,并且我需要在加载时触发 calculateSum 函数,以防有需要计算的值。我在 document.ready 的末尾添加了 calculateSum() 函数,但它只会加载全局小计。我需要它像在值字段中键入一样运行。我也尝试触发事件,但也没有运气。

我在那里放了一些默认值进行测试。

4

3 回答 3

1

尝试这个

var $elem = $('input[type="text"]', "#calc");

$elem.each(function($input) {
    if($input.val()) {
       $input.trigger('keyup');
    }
});
于 2013-05-07T18:57:31.830 回答
0

您需要在输入上调用 trigger 或手动对其运行函数,如下所示:

$(document).ready(function() {
  //Bind the event
  $("#calc").on("keyup", "input[type='text']", function() {
    calculateSum(this);
  }).find("input[type='text']").each(function() {
      calculateSum(this);
  });
});
于 2013-05-07T18:59:28.333 回答
0

您可以这样做以在第一个元素上触发绑定事件,您不需要在所有元素上触发它,因为那样它将运行 X 元素。

$(document).ready(function() {
  $("#calc").on("keyup", "input[type='text']", function() {
     calculateSum(this);
  });
  $("input[type='text']").trigger("keyup");
});
于 2013-05-07T18:57:06.490 回答