Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 09.11.2013, 14:29
Аватар для LittlePony
Кандидат Javascript-наук
Отправить личное сообщение для LittlePony Посмотреть профиль Найти все сообщения от LittlePony
 
Регистрация: 19.08.2012
Сообщений: 100

Сообщение от Faab Посмотреть сообщение
русский шрифт в id это нормально?
Строго говоря, даже в css селекторы, набранные кириллицей, будут работать.
Но да, не принято.
Ответить с цитированием
  #12 (permalink)  
Старый 10.11.2013, 12:32
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Сообщение от Faab Посмотреть сообщение
Я же писал тебе: я не вижу у тебя сложения.

При изменении (change) одного из аттрибутов, я бы заново узнал все значения твоих аттрибутов, потом бы сложил их, и вывел бы конечную цену.


Примечание 1: русский шрифт в id (#коробочный_брус_с_уплотни елем_1_шт_field) это нормально? Я бы так не рисковал.

Примечание 2: надеюсь ты понимаешь, что нужна проверка после того как ты поместил в atrribut2 какое то значение.
var atrribut2 = jQuery("#коробочный_брус_с_уплотнителем_1_шт_field option:selected").attr("title");

Тебе же нужны цифры, а не само строчное значение одной из опций списка. Ставь тут же проверку: если пользователь выбрал то-то, то числовое значение этого слагаемого будет таким-то и тд. Есть ещё варианты, но могу запутать тебя.
Мне кажется, я не догоню как это сделать. Мог бы ты мне все расписать подробнее?
Кроме того, если не менять значения размера полотная, то он отдает цена : undefined
Мне кажется тут в коде что-то нужно изменить
jQuery('span.productPrice').replaceWith('<span class="productPrice">'+jQuery(".inputboxattrib option:selected").attr("title")+'</span>');

Последний раз редактировалось Batyabest, 10.11.2013 в 12:48.
Ответить с цитированием
  #13 (permalink)  
Старый 10.11.2013, 16:03
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Вот пример решения, но есть разные решения, под твои условия.

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style type="text/css"></style>

</head>
<body>
<script>
$(document).ready(function(){
  jQuery(".inputA").change(function () {
    var nalchikValue = parseInt($('#nalichnikField').val());
    var doborValue = parseInt($('#doborField').val()); //doborField
    var totalPrice = nalchikValue + doborValue;
    
    jQuery('span.productPrice').replaceWith('<span class="productPrice">' + totalPrice + '</span>');
  });
});
</script>
<select class="inputA" id="nalichnikField">
  <option value="0">не выбрано</option>
  <option title="220.00 руб." value="220.00 руб.">темный орех</option>
</select>
<select class="inputA" id="doborField">
  <option value="0">не выбрано</option>
  <option title="380.00 руб." value="380.00 руб.">10 см темный орех</option>
  <option title="490.00 руб." value="490.00 руб">15 см темный орех</option>
  <option title="640.00 руб." value="640.00 руб.">20 см темный орех</option>
</select>
<div>
  <span class="productPrice">0</span> руб.
</div>
</body>
</html>
Ответить с цитированием
  #14 (permalink)  
Старый 12.12.2013, 16:08
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Проблема с тем что не считались другие поля со свойствами решена путем добавления такого кода.
//функция разделитель тысячных
function thousandSep(val) {
    return String(val).split("").reverse().join("")
                  .replace(/(\d{3}\B)/g, "$1 ")
                  .split("").reverse().join("");
}

//функция подсчета цены
function setPriceView() {
	
	var price = 0;
	
	jQuery(".inputboxattrib option:selected").each(function(){ //проходимся по всем инпутам
		price += parseFloat(jQuery(this).attr('title').replace(/\s+/g, '')); //парсим цену из атрибутов
	});
	
	console.log(price);
	
	var number = parseFloat(jQuery(".inputboxquantity").val()); //получаем количество
	var totalPrice = price*number; //считаем цену
	
	totalPrice = thousandSep(totalPrice.toFixed(2)); //приводим цену к нужному виду
	
	jQuery('span.productPrice').replaceWith('<span class="productPrice">'+totalPrice+' руб.</span>');//вставляем цену на страницу
};

jQuery(document).ready(function(){

jQuery(".inputboxattrib").change(function () {setPriceView(); }); //вешаем обработчик на изменение полотно и витража
jQuery(".inputboxquantity").change(function () {setPriceView(); }); //вешаем обработчик на изменение количества
jQuery(".quantity_box_button").click(function () {setPriceView(); }); //вешаем обработчик на кнопки изменения количества
});


Проблема теперь в том, что он все цены умножает на общее количество, а как сделать свое поле ввода количества? (сайт на Joomla и VM 1.1.9)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение цены при изменении количества товара MrNix21 Элементы интерфейса 9 08.12.2013 21:47
Динамическое изменение фона ячейки CyMKuH Элементы интерфейса 2 11.07.2011 15:19
Динамическое изменение контента со скроллом Accessd Элементы интерфейса 0 03.10.2009 17:34
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17
Динамическое изменение размеров изображения Макс Элементы интерфейса 7 21.07.2008 16:55