Skip to content

Alert 警告提示

用于页面中展示重要的提示信息。

基础用法

html
<div class="sa-alert" data-alert data-title="提示" data-description="这是一条提示信息" data-type="info"></div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

不同类型

支持 4 种类型:successwarninginfoerror

html
<!-- 成功提示 -->
<div class="sa-alert" 
     data-alert 
     data-type="success" 
     data-title="成功提示" 
     data-description="这是一条成功提示信息">
</div>

<!-- 警告提示 -->
<div class="sa-alert" 
     data-alert 
     data-type="warning" 
     data-title="警告提示" 
     data-description="这是一条警告提示信息">
</div>

<!-- 信息提示 -->
<div class="sa-alert" 
     data-alert 
     data-type="info" 
     data-title="信息提示" 
     data-description="这是一条信息提示">
</div>

<!-- 错误提示 -->
<div class="sa-alert" 
     data-alert 
     data-type="error" 
     data-title="错误提示" 
     data-description="这是一条错误提示信息">
</div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

可关闭

通过 data-closable="true" 启用关闭按钮。

html
<div class="sa-alert" 
     data-alert 
     data-type="success" 
     data-title="可关闭的提示" 
     data-description="点击右侧关闭按钮可以关闭此提示"
     data-closable="true">
</div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

不同效果

浅色背景

默认效果,使用浅色背景。

html
<div class="sa-alert sa-alert--success" 
     data-alert 
     data-title="浅色背景" 
     data-description="这是默认的浅色背景效果">
</div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

深色背景

添加 sa-alert--dark 类使用深色背景。

html
<div class="sa-alert sa-alert--success sa-alert--dark" 
     data-alert 
     data-title="深色背景" 
     data-description="这是深色背景效果">
</div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

API

构造函数参数

参数说明类型默认值
container容器选择器或元素string | HTMLElement-
options配置选项SaAlertOptions{}

配置选项

参数说明类型可选值默认值
type提示类型stringsuccess / warning / info / errorinfo
title标题string-''
description描述内容string-''
closable是否可关闭boolean-false
effect显示效果stringlight / darklight
onClose关闭回调function()--

方法

方法名说明参数返回值
close关闭提示-void
destroy销毁实例-void

自动初始化属性

属性说明类型默认值
class="sa-alert"启用自动初始化--
data-alert启用自动初始化标记boolean-
data-type提示类型stringinfo
data-title标题string''
data-description描述内容string''
data-closable是否可关闭booleanfalse

示例代码

手动创建实例

javascript
const alert = new SaAlert('#my-alert', {
  type: 'success',
  title: '成功提示',
  description: '操作成功!',
  closable: true,
  onClose: () => {
    console.log('提示已关闭');
  }
});

// 关闭提示
alert.close();

自动初始化

html
<div class="sa-alert" 
     data-alert 
     data-type="success" 
     data-title="成功提示" 
     data-description="操作成功!"
     data-closable="true">
</div>

<script>
  SA.init('body');
</script>
加载 SanoUI 组件中...
            
          

实际使用场景

场景 1:表单验证提示

在表单验证失败时显示错误提示。

html
<form id="alert-form" style="max-width: 500px;">
  <div class="sa-alert" 
       id="form-alert"
       data-alert 
       data-type="error" 
       data-title="表单验证失败" 
       data-description="请检查以下错误:"
       data-closable="true"
       style="display: none; margin-bottom: 1rem;">
  </div>
  
  <div class="sa-input" data-placeholder="用户名" data-autocomplete="off" style="width: 100%; margin-bottom: 1rem;"></div>
  <div class="sa-input" data-placeholder="密码" data-type="password" data-autocomplete="off" style="width: 100%; margin-bottom: 1rem;"></div>
  
  <button type="submit" class="sa-button sa-button--primary">提交</button>
</form>

<script>
  SA.init('body');
  
  document.getElementById('alert-form').addEventListener('submit', (e) => {
    e.preventDefault();
    const alert = document.getElementById('form-alert');
    const alertInstance = alert._saAlertInstance;
    
    if (alertInstance) {
      alertInstance.setDescription('用户名和密码不能为空');
      alert.style.display = 'block';
    }
  });
</script>
加载 SanoUI 组件中...
            
          

场景 2:操作成功提示

在操作成功后显示成功提示。

html
<div class="sa-alert" 
     id="success-alert"
     data-alert 
     data-type="success" 
     data-title="操作成功" 
     data-description="数据已成功保存"
     data-closable="true"
     style="display: none;">
</div>

<button class="sa-button sa-button--primary" onclick="showSuccessAlert()">执行操作</button>

<script>
  SA.init('body');
  
  function showSuccessAlert() {
    const alert = document.getElementById('success-alert');
    const alertInstance = alert._saAlertInstance;
    
    if (alertInstance) {
      alert.style.display = 'block';
      // 3秒后自动关闭
      setTimeout(() => {
        alertInstance.close();
      }, 3000);
    }
  }
</script>
加载 SanoUI 组件中...
            
          

Released under the MIT License.