Показать сообщение отдельно
  #5 (permalink)  
Старый 16.01.2012, 04:40
Новичок на форуме
Отправить личное сообщение для alia Посмотреть профиль Найти все сообщения от alia
 
Регистрация: 14.01.2012
Сообщений: 5

Спасибо большое. Вы правильно направление подсказали.
Вот такой у меня окончательный вариант получился(c учетом что теперь ответ приходит в JSON):
function showUrlInDialog(url, title){
  var tag = $("<div></div>");
  $.ajax({
    url: url,
    success: function(data) {
      tag.html(data).dialog({modal: true,
        buttons     : {
            Ok: function() {
		$.post(url, $("#f").serialize(),function(datar) {
		    $("#f").find('.error').remove();
		    if (datar.success == true) { tag.html(data).dialog('close'); } 
		    else { display_form_errors(datar['data'], $('#f'));}
	    });
            },
            Cancel: function() {
                tag.html(data).dialog('close');
                return false;
            }
        },      
      width: 'auto', title: title }).dialog('open');
    }
  });
}

function display_form_errors(errors, $form) {
    for (var k in errors) {
        $form.find('input[name=' + k + ']').after('<div class="error">' + errors[k] + '</div>');
    }
}


Вот только последнее непонятное осталось- почему когда форму так вызываешь один раз и закрываешь- если вызвать еще раз - уже прилетающие в JSON ошибки не отображаются.

Последний раз редактировалось alia, 16.01.2012 в 05:04.
Ответить с цитированием