PageSourceSearch

https://prizma.studio/js/forms.js

js prizma.studio collected 2026-10-06 13:35:37 UTC 2,166 bytes, 57 lines download raw bytes

1(function () {
2  var forms = document.querySelectorAll('form[data-w3forms]');
3
4  forms.forEach(function (form) {
5    var wrapper = form.closest('.w-form') || form.parentElement;
6    var successEl = wrapper && wrapper.querySelector('.w-form-done');
7    var failEl = wrapper && wrapper.querySelector('.w-form-fail');
8    var submitBtn = form.querySelector('input[type="submit"], button[type="submit"]');
9    var defaultText = submitBtn ? (submitBtn.value || submitBtn.textContent) : '';
10    var waitText = submitBtn ? submitBtn.getAttribute('data-wait') : '';
11
12    function setBtn(text, disabled) {
13      if (!submitBtn) return;
14      submitBtn.disabled = !!disabled;
15      if (submitBtn.tagName === 'INPUT') submitBtn.value = text;
16      else submitBtn.textContent = text;
17    }
18
19    form.addEventListener('submit', function (e) {
20      e.preventDefault();
21
22      if (failEl) failEl.style.display = 'none';
23      if (waitText) setBtn(waitText, true);
24
25      var payload = Object.fromEntries(new FormData(form));
26
27      fetch('https://api.web3forms.com/submit', {
28        method: 'POST',
29        headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
30        body: JSON.stringify(payload)
31      })
32        .then(function (r) { return r.json().then(function (d) { return { ok: r.ok, data: d }; }); })
33        .then(function (res) {
34          if (res.ok && res.data && res.data.success) {
35            form.style.display = 'none';
36            if (successEl) successEl.style.display = 'block';
37          } else {
38            console.error('[forms] Submission failed', res);
39            if (failEl) {
40              var msg = res.data && res.data.message;
41              if (msg) {
42                var msgEl = failEl.querySelector('div') || failEl;
43                msgEl.textContent = 'Oops! ' + msg;
44              }
45              failEl.style.display = 'block';
46            }
47            setBtn(defaultText, false);
48          }
49        })
50        .catch(function (err) {
51          console.error('[forms] Network error', err);
52          if (failEl) failEl.style.display = 'block';
53          setBtn(defaultText, false);
54        });
55    });
56  });
57})();

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.