еще раз.
У меня есть скрипт, который использует плагин пользовательского интерфейса jQuery для генерации встроенных модальных окон, например:
function openModal(src, width, title){
$("#" + src).dialog({
modal: true,
width: width,
title: title,
resizable: false,
show: 'fade',
hide: 'fade'
});
$('.ui-widget-overlay').hide().fadeIn();
return false;
}
$(document).ready(function() {
$('#newTopicBtn').click(function(e) {
e.preventDefault();
openModal('newTopic', 650, 'New Topic');
});
});
Модальное окно всплывает так же, как и должно.
Большинство этих модальных окон открывают какие-то формы. Проблема в том, что когда форма отправляется и обрабатывается сценарием, я не могу заставить модальное закрытие формы при использовании $('#newTopic').dialog("close")
:
$('#newTopic_form').bind('submit', function() {
var error = '';
var topicTitle = $('input[name=newTopicTitle]').val();
var topicBody = $('textarea[name=newTopicBody]').val();
if(topicTitle == '' || topicTitle.length < 2)
{
error = error + '<br />You must enter a longer title.';
}
if(topicBody == '' || topicBody.length < 2)
{
error = error + '<br />You must enter a longer topic.';
}
if(error != '')
{
$('#newTopicError').css("display","none");
$('#newTopicError').html(error);
$('#newTopicError').fadeIn(1000);
}
else
{
var pageUrl = window.location.search;
var pattern = /mode=viewcat&id=(\d+)&title/gi;
var catID = pageUrl.match(pattern);
var data = 'mode=newTopic&cat_id=' + catID + '&title=' + encodeURIComponent(topicTitle) + '&content=' + encodeURIComponent(topicBody) + '&u=' + usrId;
$.ajax({
url: "data.php",
type: "POST",
dataType: "json",
data: data,
cache: false,
success: function(data) {
if(data.response == 'added')
{
$('#newTopicError').css("display", "none");
$('#newTopicError').html("You have added your topic.");
$('#newTopicError').fadeIn(1000);
setInterval(10000, function(){
$('#newTopic').dialog("close");
});
}
}
});
}
return false;
});
Форма отправляется и обрабатывается отлично, а правильные строки исчезают в области ответа формы модала, но окно никогда не закрывается.
Существует также проблема с моим RegEx, так как он возвращает только null вместо catID, если кто-то тоже хочет помочь с этим. :)