Есть следующий блок:
<div id="block">
<label for="test_price">Цена</label>
<input type="text" name="price" id="test_price" v-model="price">
<label for="test_saleprice">Цена со скидкой</label>
<input type="text" name="saleprice" id="test_saleprice" v-model="saleprice">
<label for="test_discountprice">Процент скидки</label>
<input type="text" name="discountpercent" id="test_discountprice" v-model="salePercent">
</div>
Есть js:
new Vue({
el: '#block',
data: {
price: 0,
saleprice: 0,
discountpercent: 0
},
computed: {
salePercent: {
get: function() {
var price = parseInt(this.price);
var saleprice = parseInt(this.saleprice)
var percent = price/100;
var total = saleprice/percent;
total = 100 - total;
if (!isNaN(total)) return parseInt(total);
return 0;
},
set: function(percents){
var saleprice = parseInt(percents);
var price = parseInt(this.price);
var discount = price/saleprice;
var total = price - discount;
this.saleprice = total;
return true;
}
}
}
});
Codepen: https://codepen.io/Alexxosipov/pen/aVEXyp
Логика работы такая: указывается цена. Затем указывается либо цена со скидкой (get), после чего через computed salePercent вычисляется % скидки, либо указывается процент (set), после чего должна указываться цена со скидкой. Вопрос: что я сделал не так, почему сеттер работает неправильно? Описать сложно поведение, поэтому добавил codepen.
И да, еще вопрос: в коде постоянно повторяется parseInt(this.price). Возможно ли задать в data.price каким-либо образом строгую типизацию (int) (его подобие в js)? Заранее спасибо!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть функция возвращающая объект Promise и загружающая файлы через api vkКак сделать так, чтобы после удачного выполнения
Встала задача сделать поисковик по dropdownРешил реализовать на jquery
Здравствуйте,не понимаю,почему alert( Mathpow(2, 31) ^ 0 ); дает результат -2147483648
Правильно ли размещать javascript-код в вьюшках где лежит PHP код или его надо размещать где то в другом месте?