首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

jQuery 表單驗證插件 Vanadium 使用指南:聲明式規則、自定義提示與精簡打包

     編輯:Java 相關知識

Vanadium 是一款輕量、規則豐富、採用聲明式 HTML 屬性配置的 jQuery 表單驗證插件。本文詳細講解引入方式、驗證鉤子語法、多規則組合、錯誤提示自定義、未用規則剔除及核心參數配置,助你快速集成生產級表單驗證。

快速開始

1. 引入文件

<script src="jquery.js"></script>
<script src="vanadium.js"></script>

2. 聲明式驗證規則

在表單控件上添加 class 作為驗證鉤子,格式::rule_name 或 :rule_name;param。

<form id="regForm">
    <!-- 必填 -->
    <input id="username" class=":required" />

    <!-- 必填 + 長度 4~8 -->
    <input id="password" class=":required :min_length;4 :max_length;8" />

    <!-- 郵箱格式 -->
    <input id="email" class=":required :email" />

    <!-- 數字 + 範圍 -->
    <input id="age" class=":number :min;18 :max;100" />

    <!-- 自定義正則 -->
    <input id="phone" class=":required :regexp;/^1\d{10}$/" />

    <button type="submit">提交</button>
</form>

3. 啟用驗證

$('#regForm').vanadium(); // 默認綁定 submit 事件

核心驗證規則速查

規則鉤子參數說明
:required—非空
:min_length數字最小長度
:max_length數字最大長度
:min / :max數字數值範圍
:number / :digits / :integer—數字/整數/浮點數
:email—郵箱格式
:url—URL 格式
:date—日期格式 (YYYY-MM-DD)
:alpha / :alphanum—字母/字母數字
:regexp正則字符串自定義正則,如 :regexp;/^custom$/
:ajaxURL遠程驗證,返回 {valid:true} 或 {valid:false, message:'...'}
:confirm選擇器與另一字段值一致,如 :confirm;#password

進階配置

1. 自定義錯誤提示樣式與文案

Vanadium 默認生成錯誤提示元素,可通過選項覆蓋樣式類名:

$('#regForm').vanadium({
    valid_class: 'valid-field',      // 驗證通過樣式
    invalid_class: 'invalid-field',  // 驗證失敗樣式
    message_value_class: 'msg-value', // 提示中動態值樣式
    advice_class: 'error-message'    // 錯誤提示文本樣式
});

修改默認提示文案(需編輯 vanadium.js 內部 messages 對象或擴展):

// 擴展/覆蓋默認消息
$.vanadium.messages = {
    required: '此字段不能為空',
    email: '請輸入有效郵箱',
    min_length: '最少需要 {0} 個字符',
    // ... 其他鍵
};

2. 精簡打包:刪除未用規則

Vanadium 核心文件包含所有規則實現,生產部署前建議:

  1. 打開 vanadium.js
  2. 保留項目中使用的規則函數(如 required、email、number 等)
  3. 刪除其餘規則代碼塊
  4. 壓縮混淆(UglifyJS/Terser)

可將文件體積從 ~15KB 減至 ~5KB,加載更快。

3. 核心參數詳解

參數類型默認值說明
valid_classString'valid'驗證通過時添加到字段的 class
invalid_classString'invalid'驗證失敗時添加的 class
advice_classString'advice'錯誤提示元素的 class
message_value_classString'value'提示中動態參數值的 class
instantBooleanfalsetrue 時綁定 blur/keyup 即時驗證
onValidFunction$.noop單字段驗證通過回調
onInvalidFunction$.noop單字段驗證失敗回調
onSuccessFunction$.noop整個表單驗證通過回調
onErrorFunction$.noop整個表單驗證失敗回調

4. 程式化調用與異步場景

const validator = $('#regForm').vanadium({
    onSuccess: function() {
        // 手動提交 AJAX
        $.post('/api/register', $('#regForm').serialize())
          .done(res => { if (res.ok) location.href = '/welcome'; })
          .fail(() => alert('提交失敗'));
        return false; // 阻止默認提交
    }
});

// 手動觸發驗證
if (validator.vanadium('validate')) { ... }

// 重置表單驗證狀態
validator.vanadium('reset');

避坑指南

  • 動態添加字段:調用 $(newField).vanadium() 重新綁定,或使用事件委託模式(插件較舊版本可能不支持)。
  • 隱藏字段驗證:默認跳過 :hidden,需顯式調用驗證或設置 ignore: ''(若支持)。
  • 多表單頁面:每個 form 獨立調用 .vanadium(),不要在同一頁面多次綁定同一 form。
  • 與其他庫衝突:Vanadium 依賴 jQuery,確保版本兼容(建議 jQuery 1.7+ / 2.x / 3.x)。

現代替代方案對比

方案特點適用場景
Vanadium聲明式、零 JS 配置、規則豐富、體積小舊項目維護、快速原型、簡單表單
jQuery Validation官方維護、規則豐富、API 完善、支持遠程、本地化企業級項目、複雜驗證邏輯
Parsley.jsHTML5 data 屬性驅動、無需寫 JS、ESM 支持、活躍維護現代項目、聲明式偏好
HTML5 原生驗證零依賴、瀏覽器原生、required/pattern/type簡單表單、現代瀏覽器、輕量優先
VeeValidate / Zod + Vue/React框架集成、TypeScript 支持、Schema 驅動現代框架項目

Vanadium 雖早期停止更新,但其「Class 作為規則聲明」的設計思想極具啟發性。理解其機制後,遷移到現代方案將輕而易舉。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved