PageSourceSearch

https://www.defencecareers.mil.nz/_resources/vendor/undefinedoffse…/javascript/NocaptchaField.js?m=1790134509

js defencecareers.mil.nz collected 2026-10-02 11:27:32 UTC 3,163 bytes, 76 lines download raw bytes

1var _noCaptchaFields=_noCaptchaFields || [];
2var _noCaptchaValidationExemptActions=_noCaptchaValidationExemptActions || [];
3
4function noCaptchaFieldRender() {
5    var submitListener=function(e) {
6        // If the action is exempt from validation, skip any recaptcha checks
7        if (e.submitter &&
8            e.submitter.name &&
9            _noCaptchaValidationExemptActions.indexOf(e.submitter.name.substring(7)) > -1) {
10            return;
11        }
12
13        e.preventDefault();
14        var widgetID = e.target.querySelectorAll('.g-recaptcha')[0].getAttribute('data-widgetid');
15        grecaptcha.execute(widgetID);
16    };
17
18    var render = function(field) {
19        var options={
20            'sitekey': field.getAttribute('data-sitekey'),
21            'theme': field.getAttribute('data-theme'),
22            'type': field.getAttribute('data-type'),
23            'size': field.getAttribute('data-size'),
24            'badge': field.getAttribute('data-badge'),
25        };
26
27        //For the invisible captcha we need to setup some callback listeners
28        if(field.getAttribute('data-size')=='invisible' && field.getAttribute('data-callback')==null) {
29            var form=document.getElementById(field.getAttribute('data-form'));
30            var superHandler=false;
31
32            if(typeof jQuery!='undefined' && typeof jQuery.fn.validate!='undefined') {
33                var formValidator=jQuery(form).data('validator');
34                if (!formValidator) {
35                    formValidator=jQuery(form).validate();
36                }
37                var superHandler=formValidator.settings.submitHandler;
38                formValidator.settings.submitHandler=function(form) {
39                    var widgetID = form.querySelectorAll('.g-recaptcha')[0].getAttribute('data-widgetid');
40                    grecaptcha.execute(widgetID);
41                };
42            }else {
43                if(form && form.addEventListener) {
44                    form.addEventListener('submit', submitListener);
45                }else if(form && form.attachEvent) {
46                    window.attachEvent('onsubmit', submitListener);
47                }else if(console.error) {
48                    console.error('Could not attach event to the form');
49                }
50            }
51
52            window['Nocaptcha-'+_noCaptchaFields[i]]=function() {
53                return new Promise(function(resolve, reject) {
54                    if(typeof jQuery!='undefined' && typeof jQuery.fn.validate!='undefined' && superHandler) {
55                        superHandler(form);
56                    }else {
57                        form.submit();
58                    }
59
60                    resolve();
61                });
62            };
63
64            options.callback = 'Nocaptcha-'+_noCaptchaFields[i];
65        } else if (field.getAttribute('data-callback')) {
66            options.callback = field.getAttribute('data-callback');
67        }
68
69        var widget_id = grecaptcha.render(field, options);
70        field.setAttribute("data-widgetid", widget_id);
71    }
72
73    for(var i=0;i<_noCaptchaFields.length;i++) {
74        render(document.getElementById('Nocaptcha-'+_noCaptchaFields[i]));
75    }
76}

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.