PageSourceSearch

https://www.euroclix.nl/assets/f659334231b7e40d/app/pages/resources/js/reg/validate.js

js euroclix.nl collected 2026-09-24 09:01:11 UTC 4,079 bytes, 151 lines download raw bytes

1(function($) {
2
3/** Client-side validation */
4function setFieldCss(element, valid) {
5
6    if(valid) {
7        $(element).removeClass('t-error');
8		if($( '#terms' ).hasClass( 't-error' )){
9			$( '#uniform-terms' ).addClass('t-error');	
10	 	} else {
11	 	$( '#uniform-terms' ).removeClass('t-error');	
12	 	}
13    } else {
14        $(element).addClass('t-error');		 
15		 if($( '#terms' ).hasClass( 't-error' )){
16			$( '#uniform-terms' ).addClass('t-error');	
17	 	} else {
18	 	$( '#uniform-terms' ).removeClass('t-error');	
19	 	}
20    }
21}
22
23
24function validateField(element, message) {
25    // Show the checkmark
26    setFieldCss(element, true);
27}
28
29function invalidateField(element, message, messageField) {
30    var errorMessage = $('<li id="validate-' + $(element).attr('id') + '">' + message + '</li>');
31    
32    // Show the icon
33    setFieldCss(element, false);
34    
35    // Add message to form errors
36    if(messageField) {
37        messageField.replaceWith(errorMessage);
38    } else {
39        $('#form-errors').append(errorMessage);
40    }
41}
42
43function toggleMessages() {
44    if($('#form-errors').children().length <= 0) {
45        $('#form-errors').hide();
46    } else {
47        $('#form-errors').show();
48        $('.validation-error').hide();
49    }
50}
51
52
53
54function checkField(element) {
55    // Remove old error messages
56    var messageBox = $("#form-errors #validate-" + $(element).attr('id'));
57    if(messageBox.length <= 0) {
58         messageBox = null;
59    }
60    if($(element).hasClass('notempty')
61		&& ($(element).val().length <= 0
62        	|| $(element).val() == $(element).attr('placeholder'))) // IE9: Also invalid if equals placeholder
63    {
64    	// Check the presence of user input
65        invalidateField(element, $(element).data('validate-empty'), messageBox);
66        return false;
67    }
68    
69    if($(element).hasClass('firstname') && ($(element).val().indexOf('@') > 0))
70    {	
71    	 const regex1 = /^[A-Za-zÀ-ȕ0-9+_.-]+@[A-Za-zÀ-ȕ0-9.-]+$/;
72      	 if (!regex1.test($(element).val().toLowerCase())) {
73      	     invalidateField(element, $(element).data('validate-nofirstname'), messageBox);
74			 return false;
75      	 }
76	} else if($(element).hasClass('firstname') && ($(element).val().indexOf('@') <= 0)) {
77	    const regex2 = /^[A-Za-zÀ-ȕ0-9+. ]+$/; 
78	    if (!regex2.test($(element).val().toLowerCase())) {
79      	     invalidateField(element, $(element).data('validate-nofirstname'), messageBox);
80			 return false;
81      	 }
82	}
83	
84    if($(element).hasClass('password')
85		&& $(element).val().length < 6) 
86	{
87        // Check minimum password length
88        invalidateField(element, $(element).data('validate-tooshort'), messageBox);
89        return false;
90    }
91    if($(element).hasClass('email')
92		&& !/(.+)@(.+)\.(.+)/.test($(element).val()))
93	{
94		invalidateField(element, $(element).data('validate-noaddr'), messageBox);
95		return false;
96	}
97    if($(element).hasClass('validate-gender'))	{
98    		var genderchecked = false;
99    		$(element).find("input").each(function() {
100    			if($(this).is(":checked")){
101    				genderchecked=true
102    			}
103    		});
104    		if(genderchecked == false){
105    			invalidateField(element, $(element).data('validate-empty'), messageBox);
106        		return false;
107    		}
108    }
109    if($(element).hasClass('checked'))	{	
110    	if(!$(element).is(":checked")){
111        invalidateField(element, $(element).data('validate-unchecked'), messageBox);
112        return false;
113    	}
114    }
115   
116   
117    // Succesfully validated
118    validateField(element);
119    if(messageBox != null) {
120        messageBox.remove();
121    }
122    return true;
123}
124
125function checkForm(form) {
126    var valid = true;
127    $(form).find('.validate').each(function() {
128        if(!checkField(this)) {
129            valid = false;
130        }
131    });
132    
133    return valid;
134}
135
136$(function() {
137    toggleMessages();
138
139    $('#registrationForm .validate').change(function(event) {
140        checkField(this);
141        toggleMessages();
142    });
143    
144    $('#registrationForm').submit(function() {
145        var valid = checkForm(this);
146        toggleMessages();
147        return valid;
148    });
149});
150
151})(jQuery);

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.