Как сказал
Но в этом случае я хочу оставить Dialop Open и просто показать эти ошибки в диалоге
Ok.
После открытия диалога вы должны
- скрыть предыдущее сообщение об ошибке
...
open: function(event, ui) {
$(".error").css("display", "none");
}
После нажатия диалоговой кнопки, вы должны
- отключить JQuery UI
- Показать изображение "loading ..."
- Отправить анкету
...
$("#loading").css("display", "block");
panel.dialog("disable");
panel.dialog("option", "disabled", true);
После загрузки ответа (Вы можете использовать JSON в качестве ответа), вам нужно
- Проверьте, нет ли ошибок.
...
// var response plays the role of JSON response
var response = {
"errors":[
{
"property-name":"name",
"error":"Name is required"
},
{
"property-name":"age",
"error":""
}
]
};
var hasErrors = false;
for(var i = 0; i < response.errors.length; i++) {
if(response.errors[i].error != "") {
hasErrors = true;
$("#" + response.errors[i]["property-name"] + "-error")
.text(response.errors[i]["error"])
.css("display", "block");
}
}
if(!hasErrors) {
panel.dialog("close");
alert("success form!");
} else {
panel.dialog("enable");
panel.dialog("option", "disabled", false);
}
Здесь вы можете увидеть в действии
Обратите внимание, что у вас есть поведение по умолчанию. Так что вы можете поместить его во внешнюю функцию