1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/monksoul-availdate.js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

avalidate-v2.0.0.js: плагин для перемещения форм проверки.

Автор: 百小僧

avalidate-v2.0.0.js — это плагин для проверки форм, написанный на чистом JavaScript. Он не зависит от каких-либо сторонних фреймворков и может быть использован непосредственно на веб-странице. Плагин обладает кроссплатформенностью, компактностью, высокой расширяемостью и является полностью открытым исходным кодом! С помощью короткого кода или даже без него вы можете реализовать полную проверку формы. Кроме того, плагин включает в себя множество встроенных библиотек проверки, что значительно ускоряет разработку.

Первая версия avalidate.js была написана автором за более чем три часа. Возможно, в процессе использования могут возникнуть упущенные моменты или непредвиденные ошибки, поэтому автор просит своевременно сообщать об этом и обещает исправить все ошибки.

  • Пользовательские атрибуты тегов:

    • data-rule: обязательный атрибут, который является основой всего плагина проверки. Обратите внимание, что все поля, которые необходимо проверить, должны иметь этот атрибут, за исключением случаев, когда используется атрибут data-sync.
    • data-nullmsg: необязательный атрибут, который отображает сообщение, если поле пусто.
    • data-errmsg: необязательный атрибут, который отображает сообщение при неудачной проверке поля.
    • data-sucmsg: необязательный атрибут, который отображает сообщение после успешной проверки поля.
    • data-sync: необязательный атрибут, используемый для синхронной проверки, обычно применяется к паролям. Например, после ввода пароля первый раз, второй пароль должен пройти синхронную проверку с первым паролем.
    • data-haved: необязательный атрибут, пропускающий проверку на пустое значение, проверка выполняется только при наличии значения.
  • Встроенные правила проверки:

    • : обязательное поле, которое не может быть пустым. Пример: data-rule="".
    • *6-16: обязательное поле, не может быть пустым и должно содержать от 6 до 16 символов. Примеры: data-rule="*3-12" (обязательное поле, содержащее от 3 до 12 символов) и data-rule="*5-10" (обязательное поле, содержащее от 5 до 10 символов).
    • n: обязательное поле, не может быть пустым и должно быть положительным целым числом. Пример: data-rule="n".
    • n6-16: обязательное поле, не может быть пустым и должно состоять из 6–16 цифр. Пример: data-rule="n3-12".
    • s: обязательное поле, не может быть пустым и не должно содержать специальных символов. Пример: data-rule="s".
    • s6-16: обязательное поле, не может быть пустым, должно содержать 6–16 символов и не включать специальные символы. Пример: data-rule="s6-16".
    • p: обязательное поле, не может быть пустым и должно соответствовать правильному почтовому индексу. Пример: data-rule="p".
    • m: обязательное поле, не может быть пустым и должно соответствовать номеру мобильного телефона. Пример: data-rule="m".
    • e: обязательное поле, не может быть пустым и должно соответствовать электронному адресу. Пример: data-rule="e".
    • url: обязательное поле, не может быть пустым и должно соответствовать формату URL. Пример: data-rule="url".
    • date: обязательное поле, не может быть пустым и должно соответствовать формату даты. Пример: data-rule="date".
    • zh: обязательное поле, не может быть пустым и должно соответствовать китайскому языку. Пример: data-rule="zh".
    • dword: обязательное поле, не может быть пустым и должно соответствовать двухбайтовым символам. Пример: data-rule="dword".
    • money: обязательное поле, не может быть пустым и должно соответствовать денежному формату. Пример: data-rule="money".
    • ipv4: обязательное поле, не может быть пустым и должно соответствовать IPv4-адресу. Пример: data-rule="ipv4".
    • ipv6: обязательное поле, не может быть пустым и должно соответствовать IPv6-адресу. Пример: data-rule="ipv6".
    • num: обязательное поле, не может быть пустым и должно соответствовать числовому типу, например, положительному целому числу, положительному десятичному числу или отрицательному десятичному числу. Пример: data-rule="num".
    • qq: обязательное поле, не может быть пустым и должно соответствовать номеру QQ. Пример: data-rule="qq".
    • idcard: обязательное поле, не может быть пустым и должно соответствовать идентификационному номеру. Пример: data-rule="idcard".
    • time: обязательное поле, не может быть пустым и должно соответствовать временному формату, например, 10:23:60. Пример: data-rule="time".
    • t: обязательное поле, не может быть пустым и должно соответствовать стационарному телефонному номеру, например, 0760-88809987. Пример: data-rule="t".
    • tm: обязательное поле, не может быть пустым и должно соответствовать мобильному или стационарному телефону, например, 18676265646 или 0760-88809987. Пример: data-rule="tm".
    • video: обязательное поле, не может быть пустым и должно соответствовать видеофайлу. Пример: data-rule="video".
    • flash: обязательное поле, не может быть пустым и должно соответствовать файлу Flash. Пример: data-rule="flash".
    • mp3: обязательное поле, не может быть пустым и должно соответствовать MP3-файлу. Пример: data-rule="mp3".
    • doc: обязательное поле, не может быть пустым и должно соответствовать документу. Пример: data-rule="doc".
    • img: обязательное поле, не может быть пустым и должно соответствовать изображению. Пример: data-rule="img".
    • zip: обязательное поле, не может быть пустым и должно соответствовать сжатому файлу. Пример: data-rule="zip".
    • md5: обязательное поле, не может быть пустым и должно соответствовать строке MD5. Пример: data-rule="md5".
    • ascii: обязательное поле, не может быть пустым и должно соответствовать ASCII-строке. Пример: data-rule="ascii".
    • color: обязательное поле, не может быть пустым и должно соответствовать шестнадцатеричному цвету. Пример: data-rule="color".
    • ens: обязательное поле, не может быть пустым и должно соответствовать строчным буквам. Пример: data-rule="ens".
    • enb: обязательное поле, не может быть пустым и должно соответствовать заглавным буквам. Пример: data-rule="enb".
    • age: обязательное поле, не может быть пустым и должно соответствовать нормальному возрасту. Пример: data-rule="age". Перевод текста на русский язык:

cname: обязательно для заполнения, не может быть пустым и должен быть китайским именем. Пример: data-rule="cname".

  • ename: обязательно для заполнения, не может быть пустым и должно быть английским именем. Пример: data-rule="ename".
  • pn: обязательно для заполнения, не может быть пустым и должно быть положительным числом. Пример: data-rule="pn".
  • upn: обязательно для заполнения, не может быть пустым и должно быть отрицательным числом. Пример: data-rule="upn".

Недостаточно?

Если вышеперечисленное не соответствует вашим потребностям, не беспокойтесь, data-rule также поддерживает универсальные регулярные выражения, такие как:

  • /\w{3,6}/i означает от 3 до 6 символов.
  • /^\d$/ допускает только одно число.

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

Я хочу заменить регулярное выражение на стандартный идентификатор, можно? Конечно, можно!

ac.addRule({
            // Поддержка проверки стационарных и мобильных телефонов
            "tm": /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
});

Таким образом, вы можете использовать data-rule="tm" для проверки мобильных и стационарных телефонов.

availdate.js публичные методы

var v=ac.form(params); Описание: все области, которые необходимо проверить, должны вызывать этот метод, который возвращает базовый прототип проверки Winu, который можно вызвать с помощью возвращаемого объекта для запуска проверки.

Параметры:

  • area: область, которую необходимо проверить.
  • btn: кнопка, которая запускает проверку, поддерживает метки, id и class, рекомендуется использовать id или class.
  • startCheck: function () {}: функция, выполняемая перед началом проверки, обычно используется для анимации загрузки и отправки.
  • singleSuccess: function (e, msg) {}: функция, вызываемая при успешной проверке одного элемента, e возвращает объект формы, а msg указывает сообщение подсказки.
  • singleError: function (e, msg) { }: функция, вызываемая при неудачной проверке одного элемента, e возвращает объект формы, а msg указывает сообщение об ошибке.
  • endSuccess: function (data) {}: функция, вызываемая после успешной проверки всех элементов, data — это объект JSON.

Возвращаемый объект:

  • beginCheck: мы часто запускаем проверку с помощью кнопки, но вы также можете запустить проверку вручную с помощью v.beginCheck(), если вы хотите выполнить другую функцию после успешной проверки, вы можете сделать это с помощью b.beginCheck(function(data){}).

ac.addRule(params); Описание: расширение стандартного идентификатора data-rule, после расширения вы можете напрямую использовать идентификатор для представления регулярного выражения.

Параметры:

  • свойство: имя свойства определяет пользовательский идентификатор.
  • значение: значение свойства должно быть регулярным выражением, а не строкой. data-rule внутренне находит соответствующее регулярное выражение для выполнения проверки на основе идентификатора.

Как использовать это в проекте?

1. Базовое использование

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <!--引入插件-->
    <script type="text/javascript" src="availdate-v1.0.1.js"></script>
</head>
<body>
    <form id="frm">
        <h3>Обязательное поле: data-rule="*"</h3>
        Имя:   <input type="text" data-rule="*" data-nullmsg="Имя не может быть пустым" data-errmsg="Проверка не удалась" data-sucmsg="" />



        <h3>Указание количества символов: data-rule="*3-5", допускается ввод только от 3 до 5 символов</h3>
        Имя2:   <input type="text" data-rule="*3-5" data-nullmsg="Имя2 не может быть пустым" data-errmsg="В имени2 может быть только от 3 до 5 символов" data-sucmsg="Проверка прошла успешно" />



        <h3>Проверка положительного целого числа: data-rule="n"</h3>
        Возраст:   <input type="text" data-rule="n" data-nullmsg="Возраст не может быть пустым" data-errmsg="Возраст должен быть целым положительным числом" data-sucmsg="Проверка пройдена успешно" />



        <h3>Проверка положительного целого числа: data-rule="n3-6", допускается ввод от 3 до 6 цифр</h3>
        Количество:   <input type="text" data-rule="n3-6" data-nullmsg="Количество не может быть пустым" data-errmsg="Допускается ввод только 3–6 цифр" data-sucmsg="Проверка прошла успешно" />



        <h3>Разрешается вводить только строку, без специальных символов: data-rule="s"</h3>
        Псевдоним:   <input type="text" data-rule="s" data-nullmsg="Псевдоним не может быть пустым" data-errmsg="Псевдоним содержит специальные символы" data-sucmsg="Проверка прошла успешно" />



        <h3>Разрешено вводить только строку без специальных символов, от 3 до 6 символов:</h3>
        Псевдоним2:   <input type="text" data-rule="s3-6" data-nullmsg="Псевдоним2 не может быть пустым" data-errmsg="Псевдоним2 должен содержать только цифры или буквы, и его длина должна составлять от 3 до 6 символов" data-sucmsg="Проверка прошла успешно" />



        <h3>Проверка почтового индекса: data-rule="p"</h3>
        Почтовый индекс:   <input type="text" data-rule="p" data-nullmsg="Почтовый индекс не может быть пустым" data-errmsg="Вы ввели неправильный почтовый индекс" data-sucmsg="Проверка прошла успешно" />



        <h3>Проверка номера мобильного телефона: data-rule="m"</h3>
        Номер мобильного телефона:   <input type="text" data-rule="m" data-nullmsg="Номер мобильного телефона не может быть пустым" data-errmsg="Вы ввели номер, который не является номером мобильного телефона" data-sucmsg="Проверка прошла успешно" />


        <h3>Проверка адреса электронной почты: data-rule="e"</h3>
        Адрес электронной почты:   <input type="text" data-rule="e" data-nullmsg="Адрес электронной почты не может быть пустым" data-errmsg="Вы ввели адрес, который не является адресом электронной почты" data-sucmsg="Проверка прошла успешно" />



        <h3>Проверка, является ли это URL-адресом: data-rule="url"</h3>
        URL:   <input type="text" data-rule="url" data-nullmsg="URL не может быть пустым" data-errmsg="Вы ввели URL, который не является действительным" data-sucmsg="Проверка прошла успешно" />



        <h3>Проверка формата даты: data-rule="date", поддерживает различные форматы дат</h3>
        Дата рождения:   <input type="text" data-rule="date" data-nullmsg="Дата рождения не может быть пустой" data-errmsg="Ваша дата имеет неправильный формат" data-sucmsg="Проверка прошла успешно" />



        <h3>Проверка на китайский язык: data-rule="zh"</h3>
        Китайское имя:   <input type="text" data-rule="zh" data-nullmsg="Китайское имя не может быть пустым" data-errmsg="Ваш ввод не полностью на китайском языке" data-sucmsg="Проверка прошла успешно" />



        <h3>Проверка китайского языка: data-rule="/^[\u4e00-\u9fa5]{3,6}$/", допускается ввод от 3 до 6 китайских символов, <font style="color:#f00">поддерживает универсальные регулярные выражения</font></h3>
        Китайское имя:   <input type="text" data-rule="/^[\u4e00-\u9fa5]{3,6}$/" data-nullmsg="Китайское имя не может быть пустым" data-errmsg="Допустимо только от 3 до 6 китайских иероглифов" data-sucmsg="Проверка прошла успешно" /> **Проверка формата денег: data-rule="money"**

Ваша зарплата:  
<input type="text" data-rule="money" data-nullmsg="Зарплата не может быть пустой" data-errmsg="Введённый вами формат не является денежным" data-sucmsg="Проверка прошла успешно" />

**Проверка типа значения: data-rule="num", поддерживает десятичные дроби и целые числа**

Ваш рост:  
<input type="text" data-rule="num" data-nullmsg="Рост не может быть пустым" data-errmsg="Введённое вами значение не является числовым типом" data-sucmsg="Проверка пройдена успешно" />

**Ваш пол: data-rule="*"**

Пол:  
<input type="radio" name="gender" data-rule="*" data-nullmsg="Необходимо выбрать пол" data-sucmsg="Проверка успешна" value="мужской" /> мужской  
<input type="radio" name="gender" data-rule="*" data-nullmsg="Необходимо выбрать пол" data-sucmsg="Проверка успешна" value="женский" /> женский

**Ваши интересы и хобби: data-rule="*"**

Пол:  
<input type="checkbox" name="like" data-rule="*" data-nullmsg="Выберите хотя бы один вариант" data-sucmsg="Проверка успешна" value="баскетбол" /> баскетбол  
<input type="checkbox" name="like" data-rule="*" data-nullmsg="Выберите хотя бы один вариант" data-sucmsg="Проверка успешна" value="футбол" /> футбол  
<input type="checkbox" name="like" data-rule="*" data-nullmsg="Выберите хотя бы один вариант" data-sucmsg="Проверка успешна" value="волейбол" /> волейбол

**Вы мачо? data-rule="*"**

Мачо?:  
<select data-rule="*">
    <option value="">Выберите</option>
    <option value="да">да</option>
    <option value="нет">нет</option>
</select>

<br />
<br />

<input type="button" id="btn" value="Отправить" /> **4. В таблице при проверке всех данных выполняется пользовательская функция. Основная задача — написать метод endSuccess.**

В случае успешной проверки всех данных в форме, выполняется пользовательская функция, которая выводит сообщение об успешном завершении проверки. Это реализуется с помощью метода endSuccess, который принимает данные о проверке и выводит соответствующее сообщение.

**5. Создание пользовательского правила data-rule для проверки телефона или стационарного телефона.**

Создаётся пользовательское правило data-rule с именем «tm», которое проверяет соответствие ввода формату номера телефона. Правило добавляется с помощью функции ac.addRule. Затем выполняется проверка поля формы с использованием этого правила. Если ввод соответствует формату, то проверка считается успешной.

*Примечание: В запросе не удалось найти информацию о пункте 3.*
<title></title> <script type="text/javascript" src="availdate-v1.0.1.js"></script>

必填验证:data-rule="*"

姓名:
  <br />
  <br />
  <input type="button" id="btn" value="提交">
</form>
<script type="text/javascript">
  // 对,就这么简单就初始化了。
  ac.form({
    area: "#frm", // 验证区域,支持标签,id,class,推荐使用id或者class
    btn: "#btn", // 触发验证的按钮或者元素,支持标签,id,class,推荐使用id或者class
    startCheck: function() {
      // 自定义验证之前执行函数
      alert("开始验证啦!一般用于加载!");
    },
    singleError: function(e, msg) {
      // 自定义弹窗格式###############
      alert(
        "我是自定义弹窗格式:错误消息:" + msg
      );
    },
    singleSuccess: function(e, msg) {
      // 验证单个成功之后提示信息
      alert("我自己通过验证了!别人我不知道!");
    },
    endSuccess: function(data) {
      alert("全部验证成功啦!!!!!!" + JSON.stringify(data));
    }
  });
</script>
```
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title></title>
    <meta charset="utf-8">
    <!-- 引入插件 -->
    <script type="text/javascript" src="availdate-v1.0.1.js"></script>
  </head>
  <body>
    <form id="frm">
      <h3>手机或者固话:data-rule="tm"  我是自定义验证规则标识的,本来没有tm的标识,tm标识固话或者手机</h3>
      手机或者固话:
      <input
        type="text"
        data-rule="tm"
        data-nullmsg="手机或固话不能为空"
        data-errmsg="你输入的不是一个手机或者固话"
        data-sucmsg=""
      />

      <br /><br />
      <input type="button" id="btn" value="提交">
    </form>
    <script type="text/javascript">
      // 自定义标识规则
      ac.addRule({
        "tm": /((15)\d{9})|((13)\d{9})|((18)\d{9})|(0[1-9]{2,3}\-?[1-9]{6,7})/i
      });

      // 对,就这么简单就初始化了。
      ac.form({
        area: "#frm", // 验证区域,支持标签,id,class,推荐使用id或者class
        btn: "#btn",
        endSuccess: function(data) {
          alert("全部验证成功啦!!!!!!" + JSON.stringify(data));
        }
      });
    </script>
  </body>
</html>
``` **2. Если не заполнять, то игнорировать проверку, а если заполнить — выполнять проверку. В основном используется атрибут data-haved="true".**

```html
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title></title>
        <meta charset="utf-8">
        <!-- 引入插件 -->
        <script type="text/javascript" src="availdate-v1.0.1.js"></script>
    </head>
    <body>
        <form id="frm">
            <h3>Необходимо ввести от 3 до 6 символов: data-rule="*3-6". После добавления data-haved="true" проверка на пустоту пропускается, и проверка выполняется только при вводе значения.</h3>
            Имя: <input type="text" data-rule="*3-6" data-nullmsg="Имя не может быть пустым" data-errmsg="Должно быть от 3 до 6 символов" data-sucmsg="" data-haved="true">

            <br />
            <br />
            <input type="button" id="btn" value="Отправить">
        </form>
        <script type="text/javascript">

            // 对, всё так просто инициализируется.
            ac.form({
                area: "#frm", // Область проверки, поддерживает теги, id, class, рекомендуется использовать id или class
                btn: "#btn",
                endSuccess: function (data) {
                      alert("Все проверки прошли успешно! " + JSON.stringify(data));
                }
            });

        </script>
    </body>
</html>
  • Больше примеров вы можете найти самостоятельно!

  • Исходный код availdate.js доступен по адресу Github.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Создан для проверки форм, но не только! Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/monksoul-availdate.js.git
git@api.gitlife.ru:oschina-mirror/monksoul-availdate.js.git
oschina-mirror
monksoul-availdate.js
monksoul-availdate.js
master