Переменная JS не публикуется

#javascript #php

#javascript #php

Вопрос:

У меня есть этот код JavaScript, который изменяет значение поля и нормально работает для вывода HTML.

 <script>
var basePrice = 10;

$(".vars").change(function() {
newPrice = basePrice;

$('.vars option:selected').each(function() {
    newPrice  = $(this).data('price')
});

$('#item-price').html(newPrice);
});

</script>
  

У меня также есть форма, которая отправляет данные на другую страницу php, которая также работает нормально, только переменная #item-price не публикуется. Я почти уверен, что у меня есть поле, названное правильно, как показано ниже.

 <input type="hidden" name="product_amount" id="item-price" value="">
  

Кто-нибудь может помочь?

Ответ №1:

поля ввода не используют .html(), они используют .val()

 $('#item-price').val(newPrice);
  

Кроме того, вы можете захотеть инициализировать эту переменную NewPrice…

 var newPrice = basePrice;
  

Кроме того, как упоминал Брент, вы можете захотеть использовать parseInt() или parseFloat() для преобразования значения строковых данных в полезное число.

 newPrice  = parseFloat($(this).data('price'));
  

Комментарии:

1. Кроме того, я считаю, что вам нужно выполнить приведение чисел для «NewPrice = $ (this).data (‘price’)», чтобы на самом деле добавить их, иначе это просто приведет к объединению строк (хотя я могу ошибаться).

2. Вы правы. значением данных будет строка, поэтому parseInt будет использоваться для преобразования целых чисел или parseFloat для десятичных дробей, например 2,95