Jump to content
Fórum Script Brasil
  • 0

Script não funciona no IE


Marcos Olynyk

Question

Boa noite pessoal.

Tenho um script js em um arquivo .js e chamo ele na página que vou utilizar uma mascara para formatar moedas.

O script ta funcionando normal no Firefox, no Chrome so que no IE ele não deixa digitar nada, o campo fica inacessivel, não permitindo entrada de dados.

alguém pode me ajudar e explicar o pode ta acontecendo?

A função que uso é essa.

//Javascript para formatar valores ao digitar

function FormataReais(fld, milSep, decSep, e){

var sep = 0;

var key = '';

var i = j = 0;

var len = len2 = 0;

var strCheck = '0123456789';

var aux = aux2 = '';

var whichCode = (window.Event) ? e.which : e.keyCode;

if (whichCode == 13) return true;

key = String.fromCharCode(whichCode); // Valor para o código da Chave

if (strCheck.indexOf(key) == -1) return false; // Chave inválida

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' + aux;

if (len == 2) fld.value = '0'+ decSep + aux;

if (len > 2) {

aux2 = '';

for (j = 0, i = len - 3; 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 - 2, len);

}

return false;

}

//Fim da Função FormataReais -->

Dentro deste arquivo .js tem outras funções também, mais acredito que não seja esse o problema.

Aguardo ....

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

alguém tem alguma ideia de como posso arrumar meu script?

O amigo perguntou sobre a versão.

Ele até roda no IE 7, mais no 8 e 9 só funciona em modo de compatibilidade.

Nas versões 8 e 9 do IE, ele desabilita o campo, não deixa digitar nada.

já no FF, você digita os numeros mais não forma a máscara.

To ficando quase doido com esse script.

Alguém tem alguma ideia por favor?

Aguardo...

Link to comment
Share on other sites

  • 0
@Marcos Olynyk

Coloque também o html para eu saber como você chama essa função.

@Ricardo T. do Prado

Quem te falou que o cara usa jQuery? Além disso, se você acha que .ready não é evento, está enganado. Se alguém quiser saber, aqui tem uma comparação do onload x ready.

Chamo a função desta maneira

Primeiro chamo ela na pagina, depois no campo que quero a mascara.

<input name="valor" type="text" class="textfields" id="valor" onkeypress="return(FormataReais(this,'.',',',event))" maxlength="9" />

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...