Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera e o seguinte, tenhos esses campos abaixo:
$("#telefone").mask("(99)9999-9999");
<input name="telefone[]" type="text" id="telefone" style="width:60px" class="y"/>
<input name="telefone[]" type="text" id="telefone" style="width:60px" class="y"/>
<input name="telefone[]" type="text" id="telefone" style="width:60px" class="y"/>
mas o mask só funciona no primeiro, como faço pra resolver?
Isso acontece pois, por definição, o valor do atributo id deve ser único. Para componentes que compartilham propriedades no site, sempre utilize class.
Para solucionar, apenas aplique uma classe comum aos três campos e use-a como seletor. O id, por sua vez, deve ser único. Exemplo:
JavaScript (com jQuery)
$(".campo-telefone").mask("(99)9999-9999");
HTML
<input class="campo-telefone" id="telefone-primeiro" type="text">
<input class="campo-telefone" id="telefone-segundo" type="text">
<input class="campo-telefone" id="telefone-terceiro" type="text">Ainda não funcionou!!
Usei o seguinte script
http://www.linhadecomando.com/jquery/jquery-adicionando-linhas-inputs-dinamicamente que adicona campos automaticamente.
Vc precisa logo após a adição do novo campo, fazer o bind da máscara.
Como faço isso?
Primeiramente, você precisa saber usar id e class.
Segundamente, você pode aplicar uma classe única para todos elementos, ou agrupar o id de cada um deles na definição da máscara, separados por vírgula.