Olá, pessoal.
Estou com um problema com relação a máscara.
É o seguinte, tem campos numéricos e que tem ser separado de milhar, a cada 3 números colocar um ponto.
Porém, se eu quiser editar esse número, o número digitado está indo para o final.
Queria saber se existe alguma máscara que permita a inclusão em qualquer lugar do numeral.
Ou então se tem como modificar a função que estou usando. 
A função que estou usando é esta:
function currencyFormat(fld, milSep, decSep, e, maxlength, fun) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789-';
	var aux = aux2 = '';
	var whichCode = e.keyCode;
	
	if (whichCode == 13 || whichCode == 9) {
		return true; // Enter
	}
	if (whichCode == 8 || whichCode == 46 || whichCode == 37 || whichCode == 38
			|| whichCode == 39 || whichCode == 40 || whichCode == 46
			|| whichCode == 109 || whichCode == 189) {
		return true;
	}
	if (fld.value.length >= maxlength) {
		return false;
	}
	key = String.fromCharCode(whichCode); // Get key value from key code
	if (strCheck.indexOf(key) == -1)
		if (e.keyCode >= 96 && e.keyCode <= 105)
			key = e.keyCode - 96;
		else
			return false; // Not a valid key
	len = fld.value.length;
	for (i = 0; i < len; i++)
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep))
			break;
	aux = '';
	for (; i < len; i++)
		if (strCheck.indexOf(fld.value.charAt(i)) != -1)
			aux += fld.value.charAt(i);
	aux += key;
	len = aux.length;
	if (len == 0)
		fld.value = '';
	/*
	 * if (len == 1) fld.value = '0'+ decSep + '0'+ '0' + aux; if (len == 2)
	 * fld.value = '0'+ decSep +'0'+ aux; if (len == 3) fld.value = '0'+ decSep +
	 * aux;
	 */
	// Parte em que faz o controle se o nº é negativo *******
	if (fld.value.charAt(0) == '-') {
		if (len == 1)
			fld.value = aux;
		if (len == 2)
			fld.value = aux;
		if (len == 3)
			fld.value = aux;
		if (len == 4)
			fld.value = aux;
		if (len > 4) {
			aux2 = '';
			for (j = 0, i = len - 4; i >= 0; i--) {
				if (j == 3) {
					aux2 += milSep;
					j = 0;
				}
				aux2 += aux.charAt(i);
				j++;
			}
			fld.value = '';
			len2 = aux2.length;
			for (i = len2 - 1; i >= 0; i--)
				fld.value += aux2.charAt(i);
			fld.value += decSep + aux.substr(len - 3, len);
			fld.value = replaceAll(fld.value, '-.', '-');
		}
	}
	// Fim da parte de controle *******
	// Caso não seja um número negativo ele entra no Else *****
	else {
		if (len == 1)
			fld.value = aux;
		if (len == 2)
			fld.value = aux;
		if (len == 3)
			fld.value = aux;
		if (len > 3) {
			aux2 = '';
			for (j = 0, i = len - 4; i >= 0; i--) {
				if (j == 3) {
					aux2 += milSep;
					j = 0;
				}
				aux2 += aux.charAt(i);
				j++;
			}
			fld.value = '';
			len2 = aux2.length;
			for (i = len2 - 1; i >= 0; i--)
				fld.value += aux2.charAt(i);
			fld.value += decSep + aux.substr(len - 3, len);
		}
	}
	return false;
}
Desde já agradeço.
			
		


    Postagens
 Female
		
	
		
