Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

inclusao das validacoes para os campos float

  • Loading branch information...
commit 56103946f003d51232ec4a1ac9bfb2c748ff540b 1 parent dadd9f9
rlafitte.fa7@gmail.com authored
View
2  index.html
@@ -42,5 +42,7 @@
<script src="xsdForm.js" type="text/javascript"></script>
<script src="xsdForm-ui.js" type="text/javascript"></script>
<script src="funcoes.js" type="text/javascript"></script>
+ <script language="javascript" src="jquery-simulate.js"></script>
+ <script language="javascript" src="regex-mask-plugin.js"></script>
</body>
</html>
View
152 jquery-simulate.js
@@ -0,0 +1,152 @@
+/*
+ * jquery.simulate - simulate browser mouse and keyboard events
+ *
+ * Copyright (c) 2009 Eduardo Lundgren (eduardolundgren@gmail.com)
+ * and Richard D. Worth (rdworth@gmail.com)
+ *
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ */
+
+;(function($) {
+
+$.fn.extend({
+ simulate: function(type, options) {
+ return this.each(function() {
+ var opt = $.extend({}, $.simulate.defaults, options || {});
+ new $.simulate(this, type, opt);
+ });
+ }
+});
+
+$.simulate = function(el, type, options) {
+ this.target = el;
+ this.options = options;
+
+ if (/^drag$/.test(type)) {
+ this[type].apply(this, [this.target, options]);
+ } else {
+ this.simulateEvent(el, type, options);
+ }
+}
+
+$.extend($.simulate.prototype, {
+ simulateEvent: function(el, type, options) {
+ var evt = this.createEvent(type, options);
+ this.dispatchEvent(el, type, evt, options);
+ return evt;
+ },
+ createEvent: function(type, options) {
+ if (/^mouse(over|out|down|up|move)|(dbl)?click$/.test(type)) {
+ return this.mouseEvent(type, options);
+ } else if (/^key(up|down|press)$/.test(type)) {
+ return this.keyboardEvent(type, options);
+ }
+ },
+ mouseEvent: function(type, options) {
+ var evt;
+ var e = $.extend({
+ bubbles: true, cancelable: (type != "mousemove"), view: window, detail: 0,
+ screenX: 0, screenY: 0, clientX: 0, clientY: 0,
+ ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
+ button: 0, relatedTarget: undefined
+ }, options);
+
+ var relatedTarget = $(e.relatedTarget)[0];
+
+ if ($.isFunction(document.createEvent)) {
+ evt = document.createEvent("MouseEvents");
+ evt.initMouseEvent(type, e.bubbles, e.cancelable, e.view, e.detail,
+ e.screenX, e.screenY, e.clientX, e.clientY,
+ e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+ e.button, e.relatedTarget || document.body.parentNode);
+ } else if (document.createEventObject) {
+ evt = document.createEventObject();
+ $.extend(evt, e);
+ evt.button = { 0:1, 1:4, 2:2 }[evt.button] || evt.button;
+ }
+ return evt;
+ },
+ keyboardEvent: function(type, options) {
+ var evt;
+
+ var e = $.extend({ bubbles: true, cancelable: true, view: window,
+ ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
+ keyCode: 0, charCode: 0
+ }, options);
+
+ if ($.isFunction(document.createEvent)) {
+ try {
+ evt = document.createEvent("KeyEvents");
+ evt.initKeyEvent(type, e.bubbles, e.cancelable, e.view,
+ e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+ e.keyCode, e.charCode);
+ } catch(err) {
+ evt = document.createEvent("Events");
+ evt.initEvent(type, e.bubbles, e.cancelable);
+ $.extend(evt, { view: e.view,
+ ctrlKey: e.ctrlKey, altKey: e.altKey, shiftKey: e.shiftKey, metaKey: e.metaKey,
+ keyCode: e.keyCode, charCode: e.charCode
+ });
+ }
+ } else if (document.createEventObject) {
+ evt = document.createEventObject();
+ $.extend(evt, e);
+ }
+ if ($.browser.msie || $.browser.opera) {
+ evt.keyCode = (e.charCode > 0) ? e.charCode : e.keyCode;
+ evt.charCode = undefined;
+ }
+ return evt;
+ },
+
+ dispatchEvent: function(el, type, evt) {
+ if (el.dispatchEvent) {
+ el.dispatchEvent(evt);
+ } else if (el.fireEvent) {
+ el.fireEvent('on' + type, evt);
+ }
+ return evt;
+ },
+
+ drag: function(el) {
+ var self = this, center = this.findCenter(this.target),
+ options = this.options, x = Math.floor(center.x), y = Math.floor(center.y),
+ dx = options.dx || 0, dy = options.dy || 0, target = this.target;
+ var coord = { clientX: x, clientY: y };
+ this.simulateEvent(target, "mousedown", coord);
+ coord = { clientX: x + 1, clientY: y + 1 };
+ this.simulateEvent(document, "mousemove", coord);
+ coord = { clientX: x + dx, clientY: y + dy };
+ this.simulateEvent(document, "mousemove", coord);
+ this.simulateEvent(document, "mousemove", coord);
+ this.simulateEvent(target, "mouseup", coord);
+ },
+ findCenter: function(el) {
+ var el = $(this.target), o = el.offset();
+ return {
+ x: o.left + el.outerWidth() / 2,
+ y: o.top + el.outerHeight() / 2
+ };
+ }
+});
+
+$.extend($.simulate, {
+ defaults: {
+ speed: 'sync'
+ },
+ VK_TAB: 9,
+ VK_ENTER: 13,
+ VK_ESC: 27,
+ VK_PGUP: 33,
+ VK_PGDN: 34,
+ VK_END: 35,
+ VK_HOME: 36,
+ VK_LEFT: 37,
+ VK_UP: 38,
+ VK_RIGHT: 39,
+ VK_DOWN: 40
+});
+
+})(jQuery);
View
24 regex-mask-plugin.js
@@ -0,0 +1,24 @@
+(function ($){
+ $.fn.regexMask = function (mask) {
+ if (!mask) {
+ throw 'mandatory mask argument missing';
+ } else if (mask == 'float-ptbr') {
+ mask = /^((\d{1,3}(\.\d{3})*(((\.\d{0,2}))|((\,\d*)?)))|(\d+(\,\d*)?))$/;
+ } else if (mask == 'float-enus') {
+ mask = /^((\d{1,3}(\,\d{3})*(((\,\d{0,2}))|((\.\d*)?)))|(\d+(\.\d*)?))$/;
+ } else {
+ try {
+ mask.test("");
+ } catch(e) {
+ throw 'mask regex need to support test method';
+ }
+ }
+ $(this).keypress(function (event) {
+ if (!event.charCode) return true;
+ var part1 = this.value.substring(0,this.selectionStart);
+ var part2 = this.value.substring(this.selectionEnd,this.value.length);
+ if (!mask.test(part1 + String.fromCharCode(event.charCode) + part2))
+ return false;
+ });
+ };
+})(jQuery);
View
113 xsdForm-ui.js
@@ -108,17 +108,97 @@ function convert_date_ptbr2xsd(date) {
dateReturn = ano+'-'+mes+'-'+dia;
return dateReturn;
}
+/**
+ * Converte data e hora do formato iso para o formato brasileiro
+ */
+function convert_dateTime_xsd2ptbr(dateTime) {
+ if(dateTime === '') return '';
+ var ano;
+ var mes;
+ var dia;
+ var hora;
+ var minuto;
+ var segundo;
+ var dateTimeReturn;
+
+ ano = dateTime.substring(0,4);
+ mes = dateTime.substring(5,7);
+ dia = dateTime.substring(8,10);
+ hora = dateTime.substring(11,13);
+ minuto = dateTime.substring(14,16);
+ segundo = dateTime.substring(17,19);
+
+ dateTimeReturn = dia+'/'+mes+'/'+ano+' '+hora+':'+minuto+':'+segundo;
+
+ return dateTimeReturn;
+}
+
+/**
+ * Converte data e hora do formato brasileiro para o formato iso
+ */
+function convert_dateTime_ptbr2xsd(dateTime) {
+ if(dateTime === '') return '';
+ var ano;
+ var mes;
+ var dia;
+ var hora;
+ var minuto;
+ var segundo;
+ var dateTimeReturn;
+
+ dia = date.substring(0,2);
+ mes = date.substring(3,5);
+ ano = date.substring(6,10);
+ hora = dateTime.substring(11,13);
+ minuto = dateTime.substring(14,16);
+ segundo = dateTime.substring(17,19);
+
+ dateTimeReturn = ano+'-'+mes+'-'+dia+'T'+hora+':'+minuto+':'+segundo;
+
+ return dateTimeReturn;
+}
+/**
+ * Converte float do formato do xsd para o formato brasileiro
+ */
+function convert_float_xsd2ptbr(floatValue) {
+ floatValue = '654654565461258.32164897987564';
+ var integerPart;
+ var decimalPart;
+ var count = 0;
+ var arrayValues = new Array();
+ var arrayIntPart = new Array();
+ var floatReturn = '';
+
+ arrayValues = floatValue.split('.');
+ integerPart = arrayValues[0];
+ arrayIntPart = arrayValues[0].split('');
+ decimalPart = arrayValues[1];
+ for (x = arrayIntPart.length-1;x>=0;x--) {
+ count++;
+ if(count == 4) {
+ floatReturn = arrayIntPart[x]+'.'+floatReturn;
+ count = 1;
+ } else {
+ floatReturn = arrayIntPart[x]+floatReturn;
+ }
+ }
+
+ floatReturn = floatReturn+','+decimalPart;
+ return floatReturn;
+
+}
+/**
+ * Converte float do formato brasileiro para o formato xsd
+ */
+function convert_float_ptbr2xsd(floatValue) {
+ while (floatValue.indexOf('.', 0) != -1)
+ floatValue = floatValue.replace(".","");
+ floatValue = floatValue.replace(",",".");
+ floatValue = parseFloat(floatValue);
+ return floatValue;
+}
function generateXsdFormUI() {
- //$('input.xsdForm__date').setMask('date');
-// $('input.xsdForm__dateTime .inflated').setMask({
-// mask : '39/19/9999 29:59:59'
-// });
-// $('input.xsdForm__decimal .inflated').setMask({
-// mask : '99.999.999,99',
-// type : 'reverse',
-// defaultValue: '000'
-// });
$('input.xsdForm__date').inputDeflate({
inflate: convert_date_xsd2ptbr,
@@ -136,6 +216,21 @@ function generateXsdFormUI() {
mask : '99,999.999.999.999.999.999.999.999.999.99',
type : 'reverse'
});
+
+ $('input.xsdForm__dateTime').inputDeflate({
+ inflate: convert_dateTime_xsd2ptbr,
+ deflate: convert_dateTime_ptbr2xsd,
+ addClass: 'inflated'
+ });
+ $('input.xsdForm__dateTime.inflated').setMask({
+ mask : '39/19/9999 29:59:59'
+ });
+ $('input.xsdForm__float').inputDeflate({
+ inflate: convert_float_xsd2ptbr,
+ deflate: convert_float_ptbr2xsd,
+ addClass: 'inflated'
+ });
+ $('input.xsdForm__float.inflated').regexMask('float-ptbr');
}
Please sign in to comment.
Something went wrong with that request. Please try again.