Если вы используете jQuery, почему бы не использовать плагин проверки ?
Вы должны иметь возможность комбинировать его с модальным окном (например, SimpleModal ).
Но если вы не хотите менять то, что уже сделали, попробуйте что-то вроде этого:
Я бы просто применил некоторые правила CSS к div, чтобы расположить его (я включил наложение, которое закрывает страницу и помещает окно с предупреждением сверху):
Примечание : причина, по которой div расположен в крайнем левом положении, заключается в том, что вам нужно получить размеры div с содержимым внутри. Скрытый div будет иметь высоту и ширину ноль. Как только размер определен, он вычисляет центр страницы и позиционирует div.
CSS
#overlay {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
background: #000;
opacity: 0.8;
filter: alpha(opacity=80);
z-index: 100;
}
#alertbox {
background: #444;
padding: 10px;
position: absolute;
left: -99999px;
top: 0;
z-index: 101;
}
Сценарий
function alertBox(alertMsg){
// Add overlay
$('<div id="overlay"></div>')
.hide()
.appendTo('body')
.fadeIn('slow');
// Add alert
$('<div id="alertbox"></div>')
.html(alertMsg)
.appendTo('body');
// calculate & position alertbox in center of viewport
var abx = $('#alertbox');
var abxTop = ($(window).height() - abx.height())/2;
var abxLft = ($(window).width() - abx.width())/2;
abx
.hide()
.css({ top: abxTop, left: abxLft })
.fadeIn('slow');
// add click to hide alertbox & overlay
$('#overlay, #alertbox').click(function(){
$('#overlay, #alertbox').fadeOut('slow',function(){
$('#alertbox').remove();
$('#overlay').remove();
});
})
}