Палец вверх 0
Перевод
Перевод

как сделать умножение на полях ввода

У меня есть следующий код, и я хочу иметь возможность выполнять умножение, когда значение вводится во «количество» ввода с помощью .keyup() . Таким образом, в основном пользователь вводит число в поле ввода «количество», и оно умножает его значение на скрытые значения «cash5» и «amazon5» и отображает результаты умножения в метках «amazon5totalpoints» и «amazon5totalcash». Кроме того, как вы могли бы сделать так, чтобы вход «количество» принимал только целые числа? Спасибо вам.

<input name="quantity" type="text" id="quantity" />

<input name="amazon5" type="hidden" id="amazon5" value="450">
<input name="cash5" type="hidden" id="cash5" value="5">
<label id="amazon5totalpoints"></label>
<label id="amazon5totalcash"></label>

<input name="amazon25" type="hidden" id="amazon25" value="3150">
<input name="cash25" type="hidden" id="cash25" value="25">
<label id="amazon25totalpoints"></label>
<label id="amazon25totalcash"></label>

<input name="amazon50" type="hidden" id="amazon50" value="5900">
<input name="cash50" type="hidden" id="cash50" value="50">
<label id="amazon50totalpoints"></label>
<label id="amazon50totalcash"></label>
jquery
задан bammab 18 нояб. 2011 г., 13:20:57
источник

4 ответа

Решение 1
Перевод
Перевод

Это будет выглядеть примерно так:

$('#quantity').keyup(function() {
    var quantity = parseFloat($(this).val());
    var amazon5= parseFloat($('#amazon5').val());
    var cash5 = parseFloat($('#cash5').val());

    $('#amazon5totalpoints').text((quantity * amazon5 )); 
    $('#amazon5totalcash').text((quantity * cash5)); 
});

Код: http://jsfiddle.net/xPU6H/1/

О числовых ограничениях рассмотрим здесь: jQuery: каков наилучший способ ограничить ввод «только для чисел» для текстовых полей? (разрешить десятичные точки) . Вы можете использовать уже созданные и протестированные плагины.

ответ дан Samich 18 нояб. 2011 г., 13:27:30
источник
Палец вверх 0
Перевод
Перевод

Не проверено, но должно быть подключено

$('#quantity').keyUp(function(){
    $('#amazon5totalpoints').text( Number( $(this).val() ) * Number( $('#amazon5').val() ) );
    $('#cash5totalpoints').text( Number( $(this).val() ) * Number( $('#cash5').val() ) );
});
ответ дан CodeMonkeyG 18 нояб. 2011 г., 13:28:48
источник
Палец вверх 0
Перевод
Перевод

Попробуй это..

 <input type="text" onkeypress="return numbersonly(this.id,event,0)" id="quantity" value="1">


 function numbersonly(myfield, e, dec){
    var key;
    var keychar;

    if (window.event)
        key = window.event.keyCode;
    else if (e)
         key = e.which;
    else
         return true;
    keychar = String.fromCharCode(key);

      // control keys
      if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ){
         return true;
      }
      // numbers
      else {    
          if ((("0123456789").indexOf(keychar) > -1)){
              return true;
          }else{
              // decimal point jump
              if (dec && (keychar == ".")){             
                  //myfield.form.elements[dec].focus();
                  var deci = document.getElementById(myfield).value.indexOf(".");
                  if(deci!=-1)return false;
                  return true;
              } else {
                  //document.getElementById(myfield).focus();
                  return false;
              }
          }
      }

}

ответ дан balaphp 18 нояб. 2011 г., 13:29:14
источник
Палец вверх 0
Перевод
Перевод
$('input[name=quantity]').keyup(function(e) {
    var me = this;
    if(e.which == 110 || e.which == 190) { // checking for integer
        alert('Quantity Should be Only Integer');
        return false;
    } else {
        if ((e.which >= 96 && e.whick <= 105) || (e.which >= 48 && e.which <= 57)) {
            $('input[type=hidden]').each(function(index, el) {
                $('label:eq(' + (index + 2) + ')').empty().text($(el).val() * $(me).val());
            });
        }
    }
});
ответ дан thecodeparadox 18 нояб. 2011 г., 13:50:23
источник