Last active
August 20, 2021 22:09
-
-
Save JacobLett/2406d715bf15a21e6d17 to your computer and use it in GitHub Desktop.
hubspot embed form validation script - prevent commas, semi-colons, and accent characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script charset="utf-8" src="http://js.hsforms.net/forms/current.js"></script> | |
<script> | |
hbspt.forms.create({ | |
portalId: '', // Update with default form hubspot form id | |
formId: '', // Update with default form hubspot form id | |
//target: '.hubspot', | |
validationOptions: { | |
validation: { | |
inputValidateA: { | |
matcher: 'input', | |
errorMessages: 'Please avoid using commas "," and semi-colons ";" !', | |
validator: function($inputElement, inputValue) { | |
return /,/.test(inputValue) ? false : true | |
} | |
}, //validate | |
inputValidateB: { | |
matcher: 'input', | |
errorMessages: 'Please avoid using commas "," and semi-colons ";" !', | |
validator: function($inputElement, inputValue) { | |
return /;/.test(inputValue) ? false : true | |
} | |
}, //validate | |
textareaValidateA: { | |
matcher: 'textarea', | |
errorMessages: 'Please avoid using commas "," and semi-colons ";" !', | |
validator: function($inputElement, inputValue) { | |
return /,/.test(inputValue) ? false : true | |
} | |
}, //validate | |
textareaValidateBS: { | |
matcher: 'textarea', | |
errorMessages: 'Please avoid using commas "," and semi-colons ";" !', | |
validator: function($inputElement, inputValue) { | |
return /;/.test(inputValue) ? false : true | |
} | |
}, //validate | |
} //validation | |
} //validation options | |
}); | |
$( window ).load(function() { | |
// Run code after hubspot form loads | |
/* | |
jQuery Masked Input Plugin | |
Copyright (c) 2007 - 2014 Josh Bush (digitalbush.com) | |
Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license) | |
Version: 1.4.0 | |
http://digitalbush.com/projects/masked-input-plugin/ | |
*/ | |
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b,c=navigator.userAgent,d=/iphone/i.test(c),e=/chrome/i.test(c),f=/android/i.test(c);a.mask={definitions:{9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},autoclear:!0,dataName:"rawMaskFn",placeholder:"_"},a.fn.extend({caret:function(a,b){var c;if(0!==this.length&&!this.is(":hidden"))return"number"==typeof a?(b="number"==typeof b?b:a,this.each(function(){this.setSelectionRange?this.setSelectionRange(a,b):this.createTextRange&&(c=this.createTextRange(),c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",a),c.select())})):(this[0].setSelectionRange?(a=this[0].selectionStart,b=this[0].selectionEnd):document.selection&&document.selection.createRange&&(c=document.selection.createRange(),a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length),{begin:a,end:b})},unmask:function(){return this.trigger("unmask")},mask:function(c,g){var h,i,j,k,l,m,n,o;if(!c&&this.length>0){h=a(this[0]);var p=h.data(a.mask.dataName);return p?p():void 0}return g=a.extend({autoclear:a.mask.autoclear,placeholder:a.mask.placeholder,completed:null},g),i=a.mask.definitions,j=[],k=n=c.length,l=null,a.each(c.split(""),function(a,b){"?"==b?(n--,k=a):i[b]?(j.push(new RegExp(i[b])),null===l&&(l=j.length-1),k>a&&(m=j.length-1)):j.push(null)}),this.trigger("unmask").each(function(){function h(){if(g.completed){for(var a=l;m>=a;a++)if(j[a]&&C[a]===p(a))return;g.completed.call(B)}}function p(a){return g.placeholder.charAt(a<g.placeholder.length?a:0)}function q(a){for(;++a<n&&!j[a];);return a}function r(a){for(;--a>=0&&!j[a];);return a}function s(a,b){var c,d;if(!(0>a)){for(c=a,d=q(b);n>c;c++)if(j[c]){if(!(n>d&&j[c].test(C[d])))break;C[c]=C[d],C[d]=p(d),d=q(d)}z(),B.caret(Math.max(l,a))}}function t(a){var b,c,d,e;for(b=a,c=p(a);n>b;b++)if(j[b]){if(d=q(b),e=C[b],C[b]=c,!(n>d&&j[d].test(e)))break;c=e}}function u(){var a=B.val(),b=B.caret();if(a.length<o.length){for(A(!0);b.begin>0&&!j[b.begin-1];)b.begin--;if(0===b.begin)for(;b.begin<l&&!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}else{for(A(!0);b.begin<n&&!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}h()}function v(){A(),B.val()!=E&&B.change()}function w(a){if(!B.prop("readonly")){var b,c,e,f=a.which||a.keyCode;o=B.val(),8===f||46===f||d&&127===f?(b=B.caret(),c=b.begin,e=b.end,e-c===0&&(c=46!==f?r(c):e=q(c-1),e=46===f?q(e):e),y(c,e),s(c,e-1),a.preventDefault()):13===f?v.call(this,a):27===f&&(B.val(E),B.caret(0,A()),a.preventDefault())}}function x(b){if(!B.prop("readonly")){var c,d,e,g=b.which||b.keyCode,i=B.caret();if(!(b.ctrlKey||b.altKey||b.metaKey||32>g)&&g&&13!==g){if(i.end-i.begin!==0&&(y(i.begin,i.end),s(i.begin,i.end-1)),c=q(i.begin-1),n>c&&(d=String.fromCharCode(g),j[c].test(d))){if(t(c),C[c]=d,z(),e=q(c),f){var k=function(){a.proxy(a.fn.caret,B,e)()};setTimeout(k,0)}else B.caret(e);i.begin<=m&&h()}b.preventDefault()}}}function y(a,b){var c;for(c=a;b>c&&n>c;c++)j[c]&&(C[c]=p(c))}function z(){B.val(C.join(""))}function A(a){var b,c,d,e=B.val(),f=-1;for(b=0,d=0;n>b;b++)if(j[b]){for(C[b]=p(b);d++<e.length;)if(c=e.charAt(d-1),j[b].test(c)){C[b]=c,f=b;break}if(d>e.length){y(b+1,n);break}}else C[b]===e.charAt(d)&&d++,k>b&&(f=b);return a?z():k>f+1?g.autoclear||C.join("")===D?(B.val()&&B.val(""),y(0,n)):z():(z(),B.val(B.val().substring(0,f+1))),k?b:l}var B=a(this),C=a.map(c.split(""),function(a,b){return"?"!=a?i[a]?p(b):a:void 0}),D=C.join(""),E=B.val();B.data(a.mask.dataName,function(){return a.map(C,function(a,b){return j[b]&&a!=p(b)?a:null}).join("")}),B.one("unmask",function(){B.off(".mask").removeData(a.mask.dataName)}).on("focus.mask",function(){if(!B.prop("readonly")){clearTimeout(b);var a;E=B.val(),a=A(),b=setTimeout(function(){z(),a==c.replace("?","").length?B.caret(0,a):B.caret(a)},10)}}).on("blur.mask",v).on("keydown.mask",w).on("keypress.mask",x).on("input.mask paste.mask",function(){B.prop("readonly")||setTimeout(function(){var a=A(!0);B.caret(a),h()},0)}),e&&f&&B.off("input.mask").on("input.mask",u),A()})}})}); | |
jQuery(function($){ | |
$("input.date").mask("99/99/9999",{placeholder:"mm/dd/yyyy"}); | |
$("input[name*='phone']").mask("(99) 9999 999 9999"); | |
// $("input[name*='email']").mask(" ",{placeholder:"[email protected]"}); | |
}); | |
// Prevents alpha characters in fields that should only be numbers | |
$("input[name*='postalcode']" ).prop('type', 'number').addClass( "numbersOnly" ); | |
$("input[name*='phone']" ).addClass( "phone" ); | |
jQuery('.numbersOnly').keyup(function () { | |
this.value = this.value.replace(/[^0-9\.]/g,''); | |
}); | |
// Prevents commas and semicolons | |
$('textarea, input:not(".numbersOnly")').keyup(function(event){ | |
var keycode = (event.keyCode ? event.keyCode : event.which); | |
if(keycode == 188 || keycode == 186){ | |
alert ('Please avoid using commas "," and semi-colons ";" !'); | |
$(this).val( | |
function(index,value){ | |
return value.substr(0,value.length-1); | |
}); | |
} | |
event.stopPropagation(); | |
}); | |
// adjusts states to be two characters and uppercase | |
$("input[name*='state']").keyup(function(){ | |
this.value = this.value.toUpperCase(); | |
}); | |
$("input[name*='state']").attr('maxlength','2'); | |
//Scrolls to top of page to show errors | |
$( "input[type='submit']" ).click(function() { | |
setTimeout(function(){ | |
if ($(".hsformerror").length > 0) { | |
// Do something if class exists | |
$("html, body").animate({ | |
scrollTop:0 | |
},"slow"); | |
} | |
}, 1000); //wait for errors to show up | |
}); // when the submit form is clicked | |
}); //End window on load | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment