Просто я люблю распределять всё по функциям и не городить всё в одном месте. Поэтому проверку ссылки я вынес в отдельную функцию.
Придётся привести весь код:
//запускаю проверку по нажатии на ссылку
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;
}
Может это как-нибудь прояснит ситуацию...