Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
Ou seja, eu teria que fazer um str_replace para TODOS OS CARACTERES POSSÍVEIS que não fossem números para dar certo?
>
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" />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!!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:
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.