Ir para conteúdo

POWERED BY:

Arquivado

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

Cesão

[Resolvido] Copiar valor, mas apenas dígitos

Recommended Posts

Olá, amigos.

 

Seguinte... tenho dois campos de texto (inputs). Um deles é visivel, onde digito um valor. O outro é invisível, onde copio o valor do primeiro para ele...

 

Exemplo, tudo o que digito no input #input1, ele automaticamente copia pro #input2 (que é hidden). Isso eu já fiz e já funciona. O problema é que eu gostaria que apenas NÚMEROS fossem clonados. Ou seja, se o cara digitar 1,00 no primeiro input, no segundo eu queria que o valor fosse 100.

 

Se ele digitar R$ 10,50 no primeiro input, eu gostaria que ficasse 1050 no segundo input, entenderam?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E qual é a dificuldade?

 

faça com um str_replace()(trocando oq você não quer, por nada) :lol:

simples assim, e já dará conta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou seja, eu teria que fazer um str_replace para TODOS OS CARACTERES POSSÍVEIS que não fossem números para dar certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou seja, eu teria que fazer um str_replace para TODOS OS CARACTERES POSSÍVEIS que não fossem números para dar certo?

 

Exatamente !!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Felizmente existem as Expressões Regulares !

 

Exemplo:

<script type="text/javascript">
function id( el ){
	return document.getElementById( el );
}
window.onload = function()
{
	id('original').onkeyup = function()
	{
		var valor = this.value;
		id('copia').value = valor.replace( /[0-9]*/g, '' );

		id('copia2').value = valor.replace( /[^0-9]*/g, '' );
	}
}
</script>

	<strong>Original: </strong><input type="text" name="original" id="original" size="70" /><br /><br />
	
	Tudo oque <strong>não for</strong> número: <input type="text" name="copia" id="copia" /><br />
	Tudo oque <strong>for</strong> número: <input type="text" name="copia2" id="copia2" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhh ta. hehe era exatamente o que eu pensei: "po, se desse pra usar expressão regular, daí era fácil", mas é que eu não sabia como aplicá-las a esse caso. Como eu queria deixar o primeiro campo intacto e deixar apenas o primeiro campo só com números, fiz umas modificações.

 

Transformei em jQuery e ficou assim:

 

$("#campo1").keyup(function() {
		var valor=$(this).val();
		$('#campo2').val(valor.replace( /[^0-9]*/g, '' ));
	});

Obrigado William!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, só uma dica, já que tá usando jQuery, aproveita o melhor dele: os seletores!

não precisa 'sujar' o HTML, atribuindo IDs desnecessários, apenas para conseguir atingir com Javascript.. jQuery te facilita e deixa mais bonito isso:

 

$("input[name='campo1']").keyup(function() {
                var valor=$(this).val();
                $("input[name='campo2']").val(valor.replace( /[^0-9]*/g, '' ));
        });
:lol:

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.