Показать сообщение отдельно
  #3 (permalink)  
Старый 28.03.2016, 10:07
Кандидат Javascript-наук
Отправить личное сообщение для Strongman Посмотреть профиль Найти все сообщения от Strongman
 
Регистрация: 22.03.2016
Сообщений: 132

И JavaScript к нему присобачен - файл calc.js. Вот кусок из него(окончание):
var form = $("#calculator");
	
	$.validator.addMethod("mynumber", function (value, element) {
		return this.optional(element) || /^(\d+|\d+(,|.)?\d{1,2})$/.test(value);
	}, "Введите число");
	
	$.validator.addMethod("minCustom", function( value, element, param ) {
		return this.optional( element ) || value.replace(",",".") >= param;
	}, "Введите число больше 0");
		
	form.validate({
		rules: {
			length:{
				required: true,
				mynumber: true,
				minCustom: 1
			},
			width:{
				required: true,
				mynumber: true,
				minCustom: 1
			},
			lights:{
				required: true,
				digits: true
			},
			chandeliers:{
				required: true,
				digits: true
			},
			pipelines:{
				required: true,
				digits: true
			},
			angles:{
				required: true,
				digits: true,
				min: 4
			}
		},
		messages: {
			length:{
				required: 'Это поле обязательно',
				/*number: 'Введите число',
				min: 'Введите число больше 0'*/
			},
			width:{
				required: 'Это поле обязательно',
				/*number: 'Введите число',
				min: 'Введите число больше 0'*/
			},
			lights:{
				required: 'Это поле обязательно',
				digits: 'Введите число'
			},
			chandeliers:{
				required: 'Это поле обязательно',
				digits: 'Введите число'
			},
			pipelines:{
				required: 'Это поле обязательно',
				digits: 'Введите число'
			},
			angles:{
				required: 'Это поле обязательно',
				digits: 'Введите число',
				min: 'Кол-во углов должно быть больше 4'
			}
		},
		submitHandler: function(form) {
			console.log("it's ok");
		}			
	});

	var prices = {
		mat: {
			ger_pongs: 400,
			chi_msd: 300,
			bel_ptsm: 350,
			fra_ctn: 470
		},
		sat: {
			ger_pongs: 400,
			chi_msd: 300,
			bel_ptsm: 350,
			fra_ctn: 470
		},
		gla: {
			ger_pongs: 430,
			chi_msd: 330,
			bel_ptsm: 380,
			fra_ctn: 500
		},
		matw: {
			ger_descor: 750,
			fra_clipso: 1470,
			ita_cerutti: 1550
		}
	};

	$('#calc-btn').click(function() {
		if( form.valid() ){
			var material = $("#material").val();
			var country = $("#country").val();
			
			var price = prices[material][country];
			var length = $('#length').val();
			length = parseFloat( length.replace(",",".") );
			var width = $('#width').val();
			width = parseFloat( width.replace(",",".") );
			var lights = $('#lights').val();
			var chandeliers = $('#chandeliers').val();
			var pipelines = $('#pipelines').val();
			var angles = $('#angles').val();
			
			var priceResult = ( length*width*price ) + ( chandeliers*280 ) + ( ( angles-4 )*120 )  + ( pipelines*220 )+ ( ( (length+width)*2 )*200 ) + (lights*450);

			$('#price-result').empty();
			$('#price-result').text(priceResult);
			$('#calculator tr.price').removeClass('hidden');
			$('.price_block div').css('display','block');
		}else{
			$('#calculator tr.price').addClass('hidden');
		}
	});
	
	

	
});
Ответить с цитированием