PageSourceSearch

https://keishamodi.github.io/assets/vendor/php-email-form/validate.js

js keishamodi.github.io collected 2026-10-03 09:27:14 UTC 3,537 bytes, 126 lines download raw bytes

1jQuery(document).ready(function($) {
2  "use strict";
3
4  //Contact
5  $('form.php-email-form').submit(function() {
6   
7    var f = $(this).find('.form-group'),
8      ferror = false,
9      emailExp = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i;
10
11    f.children('input').each(function() { // run all inputs
12     
13      var i = $(this); // current input
14      var rule = i.attr('data-rule');
15
16      if (rule !== undefined) {
17        var ierror = false; // error flag for current input
18        var pos = rule.indexOf(':', 0);
19        if (pos >= 0) {
20          var exp = rule.substr(pos + 1, rule.length);
21          rule = rule.substr(0, pos);
22        } else {
23          rule = rule.substr(pos + 1, rule.length);
24        }
25
26        switch (rule) {
27          case 'required':
28            if (i.val() === '') {
29              ferror = ierror = true;
30            }
31            break;
32
33          case 'minlen':
34            if (i.val().length < parseInt(exp)) {
35              ferror = ierror = true;
36            }
37            break;
38
39          case 'email':
40            if (!emailExp.test(i.val())) {
41              ferror = ierror = true;
42            }
43            break;
44
45          case 'checked':
46            if (! i.is(':checked')) {
47              ferror = ierror = true;
48            }
49            break;
50
51          case 'regexp':
52            exp = new RegExp(exp);
53            if (!exp.test(i.val())) {
54              ferror = ierror = true;
55            }
56            break;
57        }
58        i.next('.validate').html((ierror ? (i.attr('data-msg') !== undefined ? i.attr('data-msg') : 'wrong Input') : '')).show('blind');
59      }
60    });
61    f.children('textarea').each(function() { // run all inputs
62
63      var i = $(this); // current input
64      var rule = i.attr('data-rule');
65
66      if (rule !== undefined) {
67        var ierror = false; // error flag for current input
68        var pos = rule.indexOf(':', 0);
69        if (pos >= 0) {
70          var exp = rule.substr(pos + 1, rule.length);
71          rule = rule.substr(0, pos);
72        } else {
73          rule = rule.substr(pos + 1, rule.length);
74        }
75
76        switch (rule) {
77          case 'required':
78            if (i.val() === '') {
79              ferror = ierror = true;
80            }
81            break;
82
83          case 'minlen':
84            if (i.val().length < parseInt(exp)) {
85              ferror = ierror = true;
86            }
87            break;
88        }
89        i.next('.validate').html((ierror ? (i.attr('data-msg') != undefined ? i.attr('data-msg') : 'wrong Input') : '')).show('blind');
90      }
91    });
92    if (ferror) return false;
93    else var str = $(this).serialize();
94
95    var this_form = $(this);
96    var action = $(this).attr('action');
97
98    if( ! action ) {
99      this_form.find('.loading').slideUp();
100      this_form.find('.error-message').slideDown().html('The form action property is not set!');
101      return false;
102    }
103    
104    this_form.find('.sent-message').slideUp();
105    this_form.find('.error-message').slideUp();
106    this_form.find('.loading').slideDown();
107    
108    $.ajax({
109      type: "POST",
110      url: action,
111      data: str,
112      success: function(msg) {
113        if (msg == 'OK') {
114          this_form.find('.loading').slideUp();
115          this_form.find('.sent-message').slideDown();
116          this_form.find("input:not(input[type=submit]), textarea").val('');
117        } else {
118          this_form.find('.loading').slideUp();
119          this_form.find('.error-message').slideDown().html(msg);
120        }
121      }
122    });
123    return false;
124  });
125
126});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.