2012年1月7日土曜日

[JavaScript]フォーカスが外れたタイミングで合計を自動計算

フォーカスが外れたタイミングで、任意のinputの値を合計してinputタグのvalue属性に出力してみた。

JavaScriptのソース。いけてるかどうかは分かりませんが・・・
$(':input[class*=autoSum-]').focusout(
    function () {
      var classes = $(this).attr('class').match(/autoSum-[^ ]*/g);
      for (var i = 0; i < classes.length; i++) {
        var className = classes[i];
        className.match(/autoSum-(.*)/);
        var target = RegExp.$1;
        var inputs = $(':input[class*=' + className + ']');
        var total = 0;
        for (var j = 0; j < inputs.length; j++) {
          var inputVal = inputs[j].value;
          if (inputVal != undefined && inputVal != '' && !isNaN(inputVal)) {
            total += parseInt(inputVal);
          }
        }
        $('input:[class*=total-' + target + ']').val(total);
      }
    }
);
上記のJavaScriptを使って、合計を自動設定するhtmlの例