jquery input value undefined

Рейтинг: 1Ответов: 1Опубликовано: 12.02.2023

Простое перемножение при изменении .cc и запись в .mprice. Но почему-то не перемножает - получаю в .mprice "NaN". Если взять отдельно $(this).next('.pr').val() - будет undefined:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text"      name="np1"  class="pr"  value="257" >   
<input type="text"      name="nc1"  class="cc" value="" >   
<input type="text"      name="ns1"  class="mprice" value="" >
<script>
    $('.cc').change('input', function() {
      $(this).next('.mprice').val($(this).next('.pr').val() *  $(this).val());
    });
</script>

Ответы

▲ 3Принят

В вашем скрипте нужно использовать prev('.pr') вместо next('.pr'), а также привести получаемые значения к числовому типу:

$('.cc').on('input', function() {
  $(this).next('.mprice').val( +$(this).prev('.pr').val() * +$(this).val() );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="np1" class="pr" value="257">
<input type="text" name="nc1" class="cc" value="">
<input type="text" name="ns1" class="mprice" value="">