Обычно, чтобы предупредить пользователя о чем-то, используют алерты, но это не всегда удобно, можно пользоваться своими уведомлениями:

пользовательские уведомления
как, например, это по умолчанию сделано в CRM:

Например, при создании продукта
Marco Amoedo предложил код, который можно использовать для вставки своих уведомлений. Вот пример:
/*============== addNotification function ============= Adds a warning message on the top of the entity form using the same visual style as Microsoft CRM Params: message to be shown to the user =======================================================*/ addNotification = function(message) { var notificationHTML = '<DIV class="Notification"><TABLE cellSpacing="0" cellPadding="0"> <TBODY><TR><TD vAlign="top"><IMG class="ms-crm-Lookup-Item" alt="" src="/_imgs/error/notif_icn_crit16.png" /></TD><TD><SPAN>' + message + '</SPAN></TD> </TR></TBODY></TABLE></DIV>'; var notificationsArea = document.getElementById('Notifications'); if (notificationsArea == null) return; notificationsArea.innerHTML += notificationHTML; notificationsArea.style.display = 'block'; } /*============= END addNotification function ===========*/ //Example of utilizations addNotification('Пример уведомления');

А Dejan Dular быстро добавил туда разные типы уведомлений:
/*============== addNotification function =============
Parameters:
message - message to be shown to the user
messageType - Type of the message: 1 - critical, 2 - info, 3 - warning
notificationId - ID of the notification (needed for updating purposes)
Created by:
Marco Amoedo (http://marcoamoedo.com) - the idea and initial function
Dejan Dular (http://a-crm.blogspot.com) - upgraded functionality (different icons, updating and
deleting notifications)
=======================================================*/
addNotification = function(message, messageType, notificationId)
{
var notificationsArea = document.getElementById('Notifications');
if (notificationsArea == null)
{
//Don't display message when deleting a notification.
if (messageType != 4)
{
//Sorry. Notifications are not possible on this form.
//Display a message box instead of notification.
alert(message);
}
return;
}
var notificationDIV = document.getElementById('NotificationDiv_' + notificationId);
//Delete the notification
if (messageType == 4)
{
if (notificationDIV != null)
{
//Remove the notification
notificationsArea.removeChild(notificationDIV);
}
return;
}
//Get the notification image. The default is info image.
var notificationImage;
switch (messageType)
{
case 1:
notificationImage = '/_imgs/error/notif_icn_crit16.png';
break;
case 2:
notificationImage = '/_imgs/error/notif_icn_info16.png';
break;
case 3:
notificationImage = '/_imgs/error/notif_icn_warn16.png';
break;
default:
notificationImage = '/_imgs/error/notif_icn_info16.png';
}
//Create notification
var notificationTable = '<TABLE cellSpacing="0" cellPadding="0"><TBODY><TR><TD vAlign="top"> <IMG class="ms-crm-Lookup-Item" alt="" src="' + notificationImage + '" /></TD><TD> <SPAN>' + message +'</SPAN></TD></TR></TBODY></TABLE>';
//Check if the notification with same ID already exists
if (notificationDIV == null)
{
//Create a new notification
var notificationHTML = '<DIV class="Notification" ID="NotificationDiv_' + notificationId + '">' + notificationTable + '</DIV>';
notificationsArea.innerHTML += notificationHTML;
notificationsArea.style.display = 'block';
}
else
{
//Update the notification.
notificationDIV.innerHTML = notificationTable;
}
}
/*============= END addNotification function ===========*/
Эта функция добавляется на событие Onload, а ее вызов можно делать там, где вам нужно.
addNotification(string message, int messageType, string notificationId)
Параметры:
message -Текст уведомления
messageType – Тип уведомления (1-critical, 2-info, 3- warning, 4-delete the notification)
notificationId – строка с информацией. Если фунция будет вызвана позже с существующим notificationId, уведомление будет обновлено.

