LINUX.ORG.RU

История изменений

Исправление znenyegvkby, (текущая версия) :

Не благодари. jQuery > 2.1+. Извини, но времени переписывать структуру этого говнокода нет. По идее тут _все_ не так и функции не нужны. И jQuery тоже не нужен, ага. Но если тебе так хочется...
P.S.: времени тестировать тоже нет, так что если ошибки – исправишь поди.

function send() {
	var paySystem = getPaySelectedAttr();
	jQuery('#payparts-period-success').empty().html(jQuery('#month-sel').val());
	var url = "<?php echo $this->getUrl('payparts/payment/notify/', array('_secure' => false)); ?>";
	jQuery.ajax({
        type: 'POST',
        data: {
        	'parts': jQuery('#month-sel').val(),
        	'system': paySystem['system'],
        },
        cache: false,
        url: url,
        done: function(response) {
        	successFunc(response);
        }
        fail: function(response) {
        	failureFunc(response);
        }
    });
}

function successFunc(response) {
	jQuery('#payparts-select-block').css({'display': 'none'});
	jQuery('#payparts-success').css({'display': 'block'});
	jQuery('#payment-buttons-container').css({'display': 'block'});
	return true;
}

function failureFunc(response) {
	jQuery('#send-parts-error').css({'display': 'block'});
	return false;
}

function getPaySelectedAttr(){
	var result = {};
	var e = jQuery('#system-sel');
	result['value'] = e.value();
	result['system'] = e.attr('pp-name');
	result['name'] = e.attr('name');
	return result;
}

function periodChange(){
	var selectData = getPaySelectedAttr();
	var result = '<option disabled>Срок,мес.</option><option selected value="2">2</option>';
	for (var i = 0; i < selectData.value; i++) {
	    if (i > 2) {
	        result += '<option value='+i+'>'+i+'</option>';
	    }
	}
	jQuery('#month-sel').empty().html(result);
	jQuery('#system-name').empty().html(selectData['name']);
}

jQuery(document).on('change', 
	'form[name="co-payment-form"] [name="payment[method]"]', function() {
	if (jQuery('#p_method_payparts_redirect').attr('checked')) {
		jQuery('#payment-buttons-container').css({'display': 'none'});
	} else {
		jQuery('#payment-buttons-container').css({'display': 'block'});
	}
});

jQuery('#send-parts-error').css({'display': 'none'});

jQuery(document).on('click', '#send-period', function() {
	send();
});

jQuery(document).on('change', '#system-sel', function() {
	periodChange();
});

Исходная версия znenyegvkby, :

Не благодари. jQuery > 2.1+. Извини, но времени переписывать структуру этого говнокода нет. По идее тут _все_ не так и функции не нужны. И jQuery тоже не нужен, ага. Но если тебе так хочется...
P.S.: времени тестировать тоже нет, так что если ошибки – исправишь поди.

function send() {
	var paySystem = getPaySelectedAttr();
	jQuery('#payparts-period-success').empty().html(jQuery('#month-sel').val());
	var url = "<?php echo $this->getUrl('payparts/payment/notify/', array('_secure' => false)); ?>";
	jQuery.ajax({
        type: 'POST',
        data: {
        	'parts': jQuery('#month-sel').val(),
        	'system': paySystem['system'],
        },
        cache: false,
        url: url,
        done: function(response) {
        	successFunc();
        }
        fail: function(response) {
        	failureFunc();
        }
    });
}

function successFunc(response) {
	jQuery('#payparts-select-block').css({'display': 'none'});
	jQuery('#payparts-success').css({'display': 'block'});
	jQuery('#payment-buttons-container').css({'display': 'block'});
	return true;
}

function failureFunc(response) {
	jQuery('#send-parts-error').css({'display': 'block'});
	return false;
}

function getPaySelectedAttr(){
	var result = {};
	var e = jQuery('#system-sel');
	result['value'] = e.value();
	result['system'] = e.attr('pp-name');
	result['name'] = e.attr('name');
	return result;
}

function periodChange(){
	var selectData = getPaySelectedAttr();
	var result = '<option disabled>Срок,мес.</option><option selected value="2">2</option>';
	for (var i = 0; i < selectData.value; i++) {
	    if (i > 2) {
	        result += '<option value='+i+'>'+i+'</option>';
	    }
	}
	jQuery('#month-sel').empty().html(result);
	jQuery('#system-name').empty().html(selectData['name']);
}

jQuery(document).on('change', 
	'form[name="co-payment-form"] [name="payment[method]"]', function() {
	if (jQuery('#p_method_payparts_redirect').attr('checked')) {
		jQuery('#payment-buttons-container').css({'display': 'none'});
	} else {
		jQuery('#payment-buttons-container').css({'display': 'block'});
	}
});

jQuery('#send-parts-error').css({'display': 'none'});

jQuery(document).on('click', '#send-period', function() {
	send();
});

jQuery(document).on('change', '#system-sel', function() {
	periodChange();
});