Показать сообщение отдельно
  #27 (permalink)  
Старый 26.10.2012, 11:08
Интересующийся
Отправить личное сообщение для project1 Посмотреть профиль Найти все сообщения от project1
 
Регистрация: 06.10.2011
Сообщений: 24

Просто я люблю распределять всё по функциям и не городить всё в одном месте. Поэтому проверку ссылки я вынес в отдельную функцию.
Придётся привести весь код:
//запускаю проверку по нажатии на ссылку
var form = $('form:first');
$('a[href*="/insert/"]').click(function(){
	var href = $(this).attr('href');
	if (checkForm(href)) {
		form.attr('action', href);
		form.submit();
	}
	return false;
});

function checkForm(href) {
	var ret = true, alias;
	$('input.must,textarea.must,select.must').each(function(){
		$(this).removeClass('input-error');
		if ($(this).attr('name') == 'alias') {
			alias = $(this).attr('value', this.value.replace(/\s|_/g, '-').replace(/-{2,}/g, '-').replace(/[^a-z-\dа-я]/gi, '').toLowerCase());
			if (href) {
				if (alias[0].value) {
					if (aliasExists(alias[0].value, getAssocArray(href))) {
						ret = false;
						$(this).addClass('input-error');
					}
				}
			}
		}
		if ($.trim(this.value) == '') {
			ret = false;
			$(this).addClass('input-error');
			$('#tabs').tabs({ selected: 0 });
		}
	});
	return ret;
}

function aliasExists(alias, args) {
	var ret;
	$.ajax({
		url: '/cp/ajax/alias_exists.php',
		data: {'alias': alias, 'args': args},
		async: false,
		success: function(data, textStatus) {
			ret = data;
		}
	});
	return ret;
}

Может это как-нибудь прояснит ситуацию...

Последний раз редактировалось project1, 26.10.2012 в 11:11.
Ответить с цитированием