@NaNnan

Коструктор пиццы не отменяется условие при выборе radiobutton(jQuery)?

Приветствую! Подскажите, пожалуйста, есть скрипт для конструктора пиццы мне нужно ограничить выбор максимального количества ингредиентов для пышного и тонкого теста. Должно выводится диалоговое окно о том что превышен лимит ингредиентов. В общем когда выбираю второй параметр(тонкое тесто) а потом снова переключаю на пышное (radiobutton) скрипт выдает диалог тонкого теста вместо пышного =С
function pizza () {
	_this = this;
	this.selectLayer = function(obj) {
		var id = jQuery(obj).data('id');
		var type = jQuery(obj).data('type');
		var val = jQuery(obj).val();
		var single = jQuery(obj).data('single') || 0;
		var is_ingredient = jQuery(obj).data('ingredient') || 0;
		var pizza_layer = jQuery('#pizza-'+type+'-'+id);
		var korka = jQuery('input[name="pizza-input-korka[2]"]');
		var extra_button = jQuery(obj).closest('div.pizza-ingredient').find('fieldset.pizza-fieldset');


		if(korka.filter(':checked').length == 0 && is_ingredient){
			var ingredients_count = _this.getIngredientsNumber();
			if (ingredients_count >	4) {
				jQuery( "<div>"+"Для пышного теста можно использовать только 4 ингридиента"+"</div>" ).dialog({
					modal: true,
					buttons: {
						Ok: function() {
							jQuery( this ).dialog( "close" );
							}
						},
					open: function(){
						//jQuery(this).closest(".ui-dialog").css('z-index', 12000)
					        jQuery(this).closest(".ui-dialog")
					        .find(".ui-dialog-titlebar-close")
					        .removeClass("ui-dialog-titlebar-close")
					        .html("<span class='ui-button-icon-primary ui-icon ui-icon-closethick'></span>");

						}
					});


					jQuery(obj).closest('div.pizza-ingredient').find('input.pizza-input[value=0]').prop('checked', true);
					return false;


			}
		}
		
		else{
			(korka.filter(':checked').length > 0 && is_ingredient);
			var ingredients_count = _this.getIngredientsNumber();
			if (ingredients_count >	3) {
				jQuery( "<div>"+"Для тонкого теста можно использовать только 3 ингридиента"+"</div>" ).dialog({
					modal: true,
					buttons: {
						Ok: function() {
							jQuery( this ).dialog( "close" );
							}
						},
					open: function(){
						//jQuery(this).closest(".ui-dialog").css('z-index', 12000)
					        jQuery(this).closest(".ui-dialog")
					        .find(".ui-dialog-titlebar-close")
					        .removeClass("ui-dialog-titlebar-close")
					        .html("<span class='ui-button-icon-primary ui-icon ui-icon-closethick'></span>");

						}
					});


					jQuery(obj).closest('div.pizza-ingredient').find('input.pizza-input[value=0]').prop('checked', true);
					return false;


			}
		}
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
В вашем коде сложно разобраться без html+css, да и отладить нельзя. Просто следуйте проверяйте так
jQuery('input:checked').length - вернет кол-во выбранных чекедов. И пишите в событии, если это кол-во больше 5, то вызываем сообщение и выходим из функции (return).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 10:57
50000 руб./за проект
28 нояб. 2024, в 10:52
10000 руб./за проект