Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Не работает предупреждение в опциях


 Поделиться

Рекомендованные сообщения

Здравствуйте. Сделал модальное оформление заказа. Если строки не заполнены то появляется ошибка.  А вот опции не работают. Если сделать их обязательными все равно пропускает заказ на оформление.    Если вывести опцию datatime именно она работает.

 

Файл вывода в шаблон :  

 

 <div id="zapis">

		     <?php foreach ($opvals as $opval) { ?>
			
                    <?php if ($opval['type'] == 'select') { ?>
					<div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
					<label class="control-label2"><?php echo $opval['name']; ?></label>
						<?php if($opval['top']) { ?><?php } ?>
                            <label class="control-label"  for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <select  name="op[<?php echo $opval['product_op_val_id']; ?>]" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2">
                                <option value=""><?php echo $text_select; ?></option>
                                <?php foreach ($opval['value'] as $op_value) { ?>
                                <option value="<?php echo $op_value['option_value_id']; ?>"><?php echo $op_value['name']; ?></option>
                                <?php } ?>
                            </select>
                        </div>
						
              				   <?php } ?>
                    
                    <?php if ($opval['type'] == 'radio') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2 "><?php echo $opval['name']; ?></label>
                            <div id="input-option<?php echo $opval['product_op_val_id']; ?>">
                                <?php foreach ($opval['value'] as $op_value) { ?>
                                <div class="radio">
                                    <label>
                                        <input type="radio" name="op[<?php echo $opval['product_op_val_id']; ?>]" value="<?php echo $op_value['option_value_id']; ?>" />
                                        <?php if ($op_value['image']) { ?>
                                            <img src="<?php echo $op_value['image']; ?>" alt="<?php echo $op_value['name']; ?>" class="img-thumbnail" /> 
                                        <?php } ?>                    
                                        <?php echo $op_value['name']; ?>
                                    </label>
                                </div>
                                <?php } ?>
                            </div>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'checkbox') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2"><?php echo $opval['name']; ?></label>
                            <div id="input-option<?php echo $opval['product_op_val_id']; ?>">
                                <?php foreach ($opval['value'] as $op_value) { ?>
                                    <div class="checkbox">
                                        <label>
                                            <input type="checkbox" name="op[<?php echo $opval['product_op_val_id']; ?>][]" value="<?php echo $op_value['option_value_id']; ?>" />
                                            <?php if ($op_value['image']) { ?>
                                            <img src="<?php echo $op_value['image']; ?>" alt="<?php echo $op_value['name']; ?>" class="img-thumbnail" /> 
                                            <?php } ?>
                                            <?php echo $op_value['name']; ?>
                                        </label>
                                    </div>
                                <?php } ?>
                            </div>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'text') { ?>
                        <?php if(($opval['ogr'] > 0) && ($opval['mas'])) { ?>
                            <input type="hidden" name="q" value="1" data-qq="<?php echo $opval['ogr']; ?>" />
                        <?php } ?> 
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2" for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <input type="text" name="op[<?php echo $opval['product_op_val_id']; ?>]" value="" placeholder="<?php echo $opval['text']; ?>" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2" <?php if($opval['top']) { ?>data-validate<?php } ?> />
                        </div>
                        <?php if($opval['ogr'] > 0) { ?><?php } ?> 
                        <?php if($opval['mas']) { ?>
                            <div class="form-group hh-repeatable-field js-repeatable-field__prayer-names-data">
                                <a href="javascript:void(0)" class="hh-repeatable-field__add-button hh-repeatable-field__add-button-left-margin js-repeater__add-button"><i class="fa fa-plus"></i> Добавить имя</a>
                            </div>
                        <?php } ?>    
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'textarea') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label2"   for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <textarea name="op[<?php echo $opval['product_op_val_id']; ?>]" rows="5" placeholder="<?php echo $opval['text']; ?>" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2"></textarea>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'file') { ?>
					
					
					
					
					
                
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'date') { ?>
                        <div class="form-group <?php if($opval['top']) { ?>required<?php } ?>">
                            <label class="control-label"   for="input-option<?php echo $opval['product_op_val_id']; ?>"><?php echo $opval['name']; ?></label>
                            <div class="input-group date">
                                <input type="text" name="op[<?php echo $opval['product_op_val_id']; ?>]" value="" data-date-format="YYYY-MM-DD" id="input-option<?php echo $opval['product_op_val_id']; ?>" class="form-control2" <?php if($opval['top']) { ?>data-validate<?php } ?> />
                                <span class="input-group-btn">
                                    <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
                                </span>
                            </div>
                        </div>
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'datetime') { ?>
                
                    <?php } ?>
                    
                    <?php if ($opval['type'] == 'time') { ?>
                
                    <?php } ?>
                <?php } ?>
                <input type="hidden" name="quantity" value="1" />
                <input type="hidden" name="product_id" value="<?php echo $product_id; ?>" />
                <div id="collapse-payment-method"></div>
                
                <div class="buttons">
                    <div class="pull-center" style="text-align: center;">
                        <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-hoka btn-lg">Отправить</button>
                        <button type="button" id="button-wishlist" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-hoka btn-lg">В избранное</button>
                        <input type="hidden" name="s" id="sys" value="0" />
                    </div>
                </div>
            </div>

 

 

Вот JS для вывода ошибки: 

 

$('#button-cart').on('click', function() {
    $('.alert-success, .alert-danger').remove();
    $('#sys').val('1');
    var field = [];
    
			$("#product").find("input[data-validate]").each(function() {
				field.push('input[data-validate]');
                var value = $(this).val();
         
                for(var i=0;i<field.length;i++) {
                    if( !value ) {
                        $('#sys').val('0');
                        
                        $(this).addClass('some-form__line-required');
                        setTimeout(function() {
                            $(this).removeClass('some-form__line-required')
                        }.bind(this),2000);
                    }
                }
            ;    
		   });
if($("input").is('[name=\'q\']')) {		   
q = Number($('#product input[name=\'q\']').val());
} else {
q = 1;
}
g = q - 1;
t = q;

if(g != 0) {
   for (i = 1; i < g; i++) {
       zxc = $('#product input[name=\'op[d' + i + ']\']').val();
       if(zxc == '') {
           $('#product input[name=\'op[d' + i + ']\']').remove();
           t = t - 1;
        }
   }
}
eklmn = $('#sys').val();		   
if(eklmn != 0) {
	$.ajax({
		url: 'index.php?route=checkout/cart/add&q=' + t,
		type: 'post',
		data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
		dataType: 'json',
		beforeSend: function() {
			$('#button-cart').button('loading');
		},
		complete: function() {
			$('#button-cart').button('reset');
		},
		success: function(json) {
			$('.alert, .text-danger').remove();
			$('.form-group').removeClass('has-error');

			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						var element = $('#input-option' + i.replace('_', '-'));

						if (element.parent().hasClass('input-group')) {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						} else {
							element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						}
					}
				}

				if (json['error']['recurring']) {
					$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
				}
				
				if (json['error']['product']) {
					$('.breadcrumb').after('<div class="text-danger">' + json['error']['product'] + '</div>');
				}
				
				
				
				 for (i in json['error']) {
          var element = $('#input-payment-' + i.replace('_', '-'));

          if ($(element).parent().hasClass('input-group')) {
            $(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
          } else {
            $(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
          }
        }

				// Highlight any found errors
				$('.text-danger').parent().addClass('has-error');
			}

			if (json['success']) {
				$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');

				$('#cart > ul').load('index.php?route=common/cart/info ul li');
				$.ajax({
                    url: 'index.php?route=product/form/payment',
                    dataType: 'html',
                    success: function(html) {
                        $('#zapis').html(html);
                        $('.user').css('display','block');
                    },
                    error: function(xhr, ajaxOptions, thrownError) {
                        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                    }
                });
				
			}
		},
        error: function(xhr, ajaxOptions, thrownError) {
            alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
	});
	} else {
	    $('#collapse-payment-method').html('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> Есть не заполненые поля ! </div>');
	}
});

 

 

Помогите ребята а то замучился уже. 

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.