#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