[Resolvido] Setando atributo Pattern com Javascript
Gostaria de entender por que não funciona e a resolução do problema
Instruções:
Você abre a página e seleciona se é Físico ou Jurídico caso seja Físico a pattern vai ser X caso seja Jurídico a pattern vai ser J mas o problema é que não está funcionando corretamente se alguem pudesse me explicar aonde está errado eu agradeço!
Quando eu seto o pattern direto no input ele funciona até deixei os exemplos embaixo para facilitar
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<title>Pattern em Javascript
</title>
</head>
<style type="text/css">label{display:block;}
input[type=text]:invalid{background:#F33;color:#FFF;}
input[type=text]:valid{background:lightgreen;}
</style>
<script>
function checkPattern(){
var valor = document.form1.tipo.value;
var input = document.getElementById('cpfcnpj');
if(valor == 'F'){
input.setAttribute('pattern','^(\d{3}\.\d{3}\.\d{3}-\d{2})')
}
else
{
input.setAttribute('pattern','\d{2}.\d{3}.\d{3}/\d{4}-\d{2}')
}
}
</script>
<body>
background verde = correto<br>
background vermelho = errado<br><br>
<form name="form1">
<select name="tipo">
<option value="F">Fisico</option>
<option value="J">Juridico</option>
</select><a href="#" onClick="checkPattern()">Setar</a><br><br>
<label>Testar<input type="text" name="cpfcnpj" id="cpfcnpj" required /></label><input type="submit" value="Executar" /><br><br>
<label>CPF Funcionando<input type="text" pattern="^(\d{3}\.\d{3}\.\d{3}-\d{2})" value="111.111.111-11" name="cpfcnpj" id="cpfcnpj" required /></label>
<label>CNPJ Funcionando<input type="text" pattern="\d{2}.\d{3}.\d{3}/\d{4}-\d{2}" value="11.111.111/1111-11" name="cpfcnpj" id="cpfcnpj" required />
</form>
</body>
</html>Discussão (4)
Carregando comentários...