Adicionar letra fixa na mask

Estou tentando colocar uma mask no input que deve começar com estes caracteres "A-" Por exemplo, a pessoa vai digitar 689 e vai ficar A-689. O problema que encontrei é porque a letra "A" no Fluig é responsável por liberar letras e números, então ele não fixa a letra A. Testei com a letra B e funcionou certinho. Será que teria um jeito de usar a letra A sem linkar com o A do Fluig que serve para usar letras/números?

Obrigado desde já!

CÓDIGO HTML

JS

function onchangeMask() { var valor = $("#codigoObra").val(); valor = 'A-'+valor; $("#codigoObra").val(valor); }

OBS: Não consegui identar pela parte do comentário, por isso ficou na mesma linha.

@Pedro, uma solução que você poderia implementar é criar uma função. No html coloque " e no javascript implemente a função:


function onchangeMask(){
    var valor = $("#idCampo").val();
    valor = 'A-'+valor;
    $("#idCampo").val(valor);
}

Screenshot_4.png

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Perfeito! Este método atende o que necessito, o único ruim é que não consigo botar uma mask de apenas números, já que ele coloca o A no começo. Teria como fazer a mascara apenas para aceitar números colocando o “A-” no começo??

No caso o usuário vai preencher três números (contendo a máscara apenas para números) e o método vai colocar o A- na frente.

@Pedro, adicione mask=“000” no seu html. De todo caso modifiquei a resposta

@Quemuel, Sim! Eu tentei fazer isso, porém quando coloco a mask contendo “000”, no momento do onchange rodar ele não coloca o A, justamente por não ser número. Tipo, se eu tirar a mask funciona perfeitamente, no momento que o onchange roda ele coloca o “A-” no começo, com a mask essa função já não funciona mais porque o A- é texto…

Aqui funcionou @Pedro, adicionei imagem na resposta.

Estranho, @Quemuel! A partir do momento que eu coloco o Mask a função não coloca o A- na frente… Devo ter feito algo de errado, vou tentar dar uma revisada no código para não falar besteira. Muito obrigado!

Todavia, caso consiga descobrir o erro mais facilmente, coloquei o código na pergunta

Como está seu html chamando a função onchange?

Vou te mostrar uma print pois não estou conseguindo colocar o código aqui
HTML Screenshot by Lightshot
JS Screenshot by Lightshot

Tentei remover o “onblur” caso houvesse alguma coisa porém mesmo assim ainda não funcionou depois de aplicar o mask com a função

@Pedro, adiciona essa biblioteca no inicio do seu documento html

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.13.4/jquery.mask.min.js"></script>

Perfeito, Quemel!!! Agora funcionou. Por que será que preciso trocar a versão do JQUERY? Eu preciso apagar alguma padrão do FLUIG ou apenas acrescento esta? Pois a do fluig já possui duas do JQUERY, a jquery.js e jquery-ui.min.js.
Todavia, agradeço desde já pela atenção e resposta!

Apenas acrescentar esta. Acredito que ela não seja padrão do fluig, por isso é necessário acrescenta-la.

Beleza! Muito obrigado novamente, @Quemuel!

Usar o código fornecido pelo Quemuel!

Você pode usar essa forma também se preferir, ao sair de foco ou entrar em foco, ou clicar enter, isso tudo você pode fazer com .bind({})

Exemplo


$("#idCampo").bind({
focus: function(){
     //quando entrar em foco (onblur)
     $("#idCampo").attr("mask","A-000")
}
focusout: function(){
     //quando sair de foco
     $("#idCampo").attr("mask","A-000")
}
keypress: function(e){
    if (e.which == 13) {
             //quando apertar enter dentro do input
             $("#idCampo").attr("mask","A-000")
}
}

São N possibilidades de fazer, espero ter ajudado, até a proxima

Fonte: .bind({}) - Jquery API

Muito obrigado, Matheus! Estas outras possibilidades me ajudarão extremamente com outras coisas que necessito fazer!

Não há de quê, estou aqui se precisar!!