Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dogue

[Resolvido] Mascara e crossbrowser

Recommended Posts

Gostaria de saber se alguém pode me auxiliar nesse script, eu gostaria de usar em crossbrowser, porém ele apenas funciona em Mozilla, e na variavel tiragem gostaria de usar uma máscara para centenas e milhares, usando pontos ex; 1000 = 1.000

10000 = 10.000, encontrei outros scripts de máscaras, porém eles eram monetários, espero que possam me ajudar.

<html>
<head>
<script type="text/javascript">
var p1, p2, p3, p4, mediaCalc;

function calcular(){
       p1 = (document.calculo.n1.value);
       p2 = (document.calculo.n2.value);
       p3 = (document.calculo.n3.value);
       p4 = (document.calculo.n4.value);
p5 = (document.calculo.n5.value);
lmaior = (document.calculo.lmaior.value);
lmenor = (document.calculo.lmenor.value);
mult =  ( lmenor*lmaior);

       mediaCalc = (p1 * 0.05 * mult * p2 * p3 * p4 * p5) / 353 /100;/** O numero 100 está agregado aqui devido a conversão para milimetros**/
       document.calculo.md.value = mediaCalc.toFixed(2);
}
/** Função para arredondar casas decimais, toFixed(2); o numero define quantas casas, e é agregado na variavel com a resposta total**/

</script>
</head>

<body>
<form name="calculo">
<td>Formato Aberto (LxA):</td>
      <td><input id="LadoMaior" size="2" name="lmaior"> x <input id="LadoMenor" size="2" name="lmenor"></td><br>

       <label>Tiragem</label>
       <input type="text" name="n1" size="10" value="0">


       <td>Coeficiente do papel:</td>
           <td><select name="n2"><br> 
           <option value="1.5">Cartões</option>
           <option value="1.0">Couche</option>
           <option value="1.8">Jornal</option>
    <option value="2.0">Kraft</option>
           <option value="1.6" selected="selected">Offset</option>
           </select></td>
     </tr><br> 


       <td>Impressão frente e verso?:</td>
           <td><select name="n3">
           <option value="1">1 lado</option>
           <option value="2">2 lados</option><br>

       <label>N4</label>
       <select name="n4"> 
		          <option value="">Selecione</option>
                        	  <option value="0.2">Texto 10%</option>
                        	  <option value="0.3">Reticulado 30%</option>
                        	  <option value="0.4">Reticulado 40%</option>                             
                         	  <option value="0.7">Forte 70%</option>                         
                        	  <option value="1.0">Chapado 100%</option>                         
			        </option><br>

       <label>Peso específico da tinta</label>
       <select name="n5"> 
		          <option value="">Selecione</option>
                        	  <option value="1.0">Cores de escala / preto e prata</option>
                        	  <option value="1.2">Cores transparentes</option>
                        	  <option value="1.7">Cores opacas</option>                             
                         	  <option value="2.0">Branco Opaco / Ouro</option>                      
                        	      </option><br>               



<input type="button" value="multiplica" onclick="calcular()" >
<input type="text" name="md">


</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

basta adaptar a ER da mascara mvalor():

 

http://wbruno.com.br/blog/2011/03/12/diversas-mascaras-com-er/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui encontrar a solução para Máscara de NÚMEROS INTEIROS;

 

Segue o Codigo;

<html>

<head>

 <script type="text/javascript">
 function mascaraInteiro(obj)
 {
           // remove pontos do valor armazenado no objeto
           while (obj.value.indexOf('.') >= 0)
           {
               obj.value = obj.value.replace('.','');
           }

         // inclui pontos nos locais adequados
         var copia = obj.value;
         var tam = obj.value.length;
         var temp = '';
         for (i = tam - 1; i >= 0; i--)
         {
             temp = copia.charAt(i) + temp;
             if ((copia.substr(i).length % 3 == 0) && (i > 0))
             {
                 temp = '.' + temp;
             }
         }
         obj.value = temp;
 }
 </script>

</head>

<body>

 <form>
  <input type="text" id="numero" onkeyup="mascaraInteiro(this);">
 </form>

</body>

</html>

 

Porem ainda necessito de ajuda em questão do crossbrowser se alguem poder ajudar fico grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe perguntar, mas pq você não aplicou a minha sugestão ?

 

<html>
<head>
<script type="text/javascript">
/* Máscaras ER */
function mascara(o,f){
   v_obj=o
   v_fun=f
   setTimeout("execmascara()",1)
}
function execmascara(){
   v_obj.value=v_fun(v_obj.value)
}
function minteiro(v){
   v=v.replace(/\D/g,"");//Remove tudo o que não é dígito
   v=v.replace(/(\d)(\d{6})$/,"$1.$2");//coloca o ponto dos milhões
   v=v.replace(/(\d)(\d{3})$/,"$1.$2");//coloca o ponto dos milhares

   return v;
}
</script>
</head>
<body>
<form>
	<input type="text" id="numero" onkeyup="mascara(this, minteiro);">
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, não tinha visualizado sua resposta, mas muito obrigado ...também funcionou....desculpa mesmo...se puder me ajudar na questão do cross..em algumas dicas..obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

o código que postei já é crossbrowser.

 

o único problema com o seu, é a "complexidade alta para fazer algo simples".

Algumas funções dele são "problemáticas".

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.