Как получить значение из input?

195
04 июля 2018, 12:50
$('.btn-number').click(function(e) {
  e.preventDefault();
  fieldName = $(this).attr('data-field');
  type = $(this).attr('data-type');
  var input = $("input[name='" + fieldName + "']");
  var currentVal = parseInt(input.val());
  if (!isNaN(currentVal)) {
    if (type == 'minus') {
      if (currentVal > input.attr('min')) {
        input.val(currentVal - 1).change();
        var min = currentVal - 1;
        console.log(input);
        $.ajax({
          type: 'POST',
          url: 'index.php?route=report/forming_order/update&token=<?php echo $token; ?>',
          data: {
            "min": min
          },
          success: function(data) {
            $('#min').html(data);
          }
        });

      }
      if (parseInt(input.val()) == input.attr('min')) {
        $(this).attr('disabled', true);
      }
    } else if (type == 'plus') {
      if (currentVal < input.attr('max')) {
        input.val(currentVal + 1).change();
        console.log(currentVal + 1);
      }
      if (parseInt(input.val()) == input.attr('max')) {
        $(this).attr('disabled', true);
      }
    }
  } else {
    input.val(0);
  }
});
$('.input-number').focusin(function() {
  $(this).data('oldValue', $(this).val());
});
$('.input-number').change(function() {
  minValue = parseInt($(this).attr('min'));
  maxValue = parseInt($(this).attr('max'));
  valueCurrent = parseInt($(this).val());
  name = $(this).attr('name');
  if (valueCurrent >= minValue) {
    $(".btn-number[data-type='minus'][data-field='" + name + "']").removeAttr('disabled')
  } else {
    alert('Sorry, the minimum value was reached');
    $(this).val($(this).data('oldValue'));
  }
  if (valueCurrent <= maxValue) {
    $(".btn-number[data-type='plus'][data-field='" + name + "']").removeAttr('disabled')
  } else {
    alert('Sorry, the maximum value was reached');
    $(this).val($(this).data('oldValue'));
  }

});
$(".input-number").keydown(function(e) {
  // Allow: backspace, delete, tab, escape, enter and .
  if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
    // Allow: Ctrl+A
    (e.keyCode == 65 && e.ctrlKey === true) ||
    // Allow: home, end, left, right
    (e.keyCode >= 35 && e.keyCode <= 39)) {
    // let it happen, don't do anything
    return;
  }
  // Ensure that it is a number and stop the keypress
  if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
    e.preventDefault();
  }
});
<div class="center">
  <div class="input-group">
    <span class="input-group-btn">
      <button type="button" class="btn btn-danger btn-number"  data-type="minus"  data-field="quant['<?php echo $product['product_id']?>']">
        <span class="fa fa-minus"></span>
    </button>
    </span>
    <input type="text" style="text-align: center" name="quant['<?php echo $product['product_id']?>']" class="form-control input-number" value=" <?php echo $product['quantity']?>" min="1" max="100">
    <span class="input-group-btn">
 <button type="button" class="btn btn-success btn-number" data-type="plus" data-field="quant['<?php echo $product['product_id']?>']">
  <span class="fa fa-plus"></span>
    </button>
    </span>
  </div>
  <p></p>
</div>

При нажатии на кнопку приходит ответ:

init [input.form-control.input-number, prevObject: init(1), context: document, selector: "input[name='quant['13079']']"]

Как получить значение 'quant['13079']'?

Answer 1

Проще будет добавить инпуту атрибут ID

<input  id="quant-<?= $product['product_id'] ?>" .... >
....
<button data-field="quant-<?= $product['product_id']?>">...</button>

и обращаться по нему:

fieldName = $(this).attr('data-field');
var input = $("#" + fieldName);
READ ALSO
Как выделить тысячные доли числа в строке точками?

Как выделить тысячные доли числа в строке точками?

Нужно сделать разделения, к примеру, числа 15600 точками, чтобы получилось 15600

213
Установить библиотеку DocX

Установить библиотеку DocX

Подскажите пожалуйста, где можно скачать файлы библиотеки DocX (XceedWords

234
Как читать из файла в Xamarin Forms?

Как читать из файла в Xamarin Forms?

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

211
Не осуществляется вход на сайт AngleSharp

Не осуществляется вход на сайт AngleSharp

Использую для авторизации библиотеку AngleSharp, на все сайты, до этого я успешно заходил используя следующий алгоритм (естественно другие адреса...

203