Как настроить плагин jAutoCalc - PullRequest
0 голосов
/ 03 июля 2018

У меня простой вопрос относительно jAutoCalc , на мой вопрос можно ответить двумя способами:

1> Как настроить плагин jAutoCalc, чтобы мы могли использовать его для имен входных массивов, а не просто для имен. мой код здесь:

<html>
<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
  <script type="text/javascript" src="http://rawgit.com/c17r/jAutoCalc/master/jAutoCalc.js"></script>
  <script type="text/javascript">
    <!--
    $(document).ready(function() {
      function autoCalcSetup() {
        $('form[name=cart]').jAutoCalc('destroy');
        $('form[name=cart] tr[name=line_items]').jAutoCalc({
          keyEventsFire: true,
          decimalPlaces: 2,
          emptyAsZero: true
        });
        $('form[name=cart]').jAutoCalc({
          decimalPlaces: 2
        });
      }
      autoCalcSetup();

      $('button[name=remove]').click(function(e) {
        e.preventDefault();

        var form = $(this).parents('form')
        $(this).parents('tr').remove();
        autoCalcSetup();
      });

      $('button[name=add]').click(function(e) {
        e.preventDefault();

        var $table = $(this).parents('table');
        var $top = $table.find('tr[name=line_items]').first();
        var $new = $top.clone(true);

        $new.jAutoCalc('destroy');
        $new.insertBefore($top);
        $new.find('input[type=text]').val('');
        autoCalcSetup();
      });
    });
  </script>
</head>
<body>
  <form name="cart">
    <table name="cart">
      <tr>
        <th></th>
        <th>Item</th>
        <th>Qty</th>
        <th>Price</th>
        <th>&nbsp;</th>
        <th>Item Total</th>
      </tr>
      <tr name="line_items">
        <td><button name="remove">Remove</button></td>
        <td>Stuff</td>
        <td><input type="text" name="qty" value="1"></td>
        <td><input type="text" name="price" value="9.99"></td>
        <td>&nbsp;</td>
        <td><input type="text" name="item_total" value="" jAutoCalc="{qty} * {price}"></td>
      </tr>
      <tr name="line_items">
        <td><button name="remove">Remove</button></td>
        <td>More Stuff</td>
        <td><input type="text" name="qty" value="2"></td>
        <td><input type="text" name="price" value="12.50"></td>
        <td>&nbsp;</td>
        <td><input type="text" name="item_total" value="" jAutoCalc="{qty} * {price}"></td>
      </tr>
      <tr name="line_items">
        <td><button name="remove">Remove</button></td>
        <td>And More Stuff</td>
        <td><input type="text" name="qty" value="3"></td>
        <td><input type="text" name="price" value="99.99"></td>
        <td>&nbsp;</td>
        <td><input type="text" name="item_total" value="" jAutoCalc="{qty} * {price}"></td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
        <td>Subtotal</td>
        <td>&nbsp;</td>
        <td><input type="text" name="sub_total" value="" jAutoCalc="SUM({item_total})"></td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
        <td>
          Tax:
          <select name="tax">
            <option value=".06">CT Tax</option>
            <option selected value=".00">Tax Free</option>
          </select>
        </td>
        <td>&nbsp;</td>
        <td><input type="text" name="tax_total" value="" jAutoCalc="{sub_total} * {tax}"></td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
        <td>Total</td>
        <td>&nbsp;</td>
        <td><input type="text" name="grand_total" value="" jAutoCalc="{sub_total} + {tax_total}"></td>
      </tr>
      <tr>
        <td colspan="99"><button name="add">Add Row</button></td>
      </tr>
    </table>
  </form>
</body>
</html>

поскольку имена для динамически генерируемых входных данных совпадают, я хочу использовать входной массив. Проблема в том, что если я это сделаю, то я не смогу использовать функции плагина!

2> На вопрос можно ответить вторым способом, предоставив методы использования плагина при использовании входных массивов

Ответы [ 2 ]

0 голосов
/ 29 июля 2019

Я знаю, что это старый пост, но, возможно, другие могут иметь такую ​​же проблему.

Попробуйте открыть jautocalc.js, найдите эту функцию "getFieldSelector (field)" и отредактируйте этот код.

return ': input [name = "' + field + '"]';

до

return ': input [name = "' + field + '[]"]';

0 голосов
/ 03 июля 2018

Я думаю, что вся проблема с JavaScript JavaScript должен быть похож на

$(document).ready(function(){
    $('.item_total').keyup(function(){
        $('your result input name here).text($('.item_total').val() * 1.5);
    });   
});

эта ссылка поможет вам: http://jsfiddle.net/7BDwP/

По приведенной выше ссылке вы поймете, что я пытаюсь сказать

...