Não encontro uma forma de incluir uma máscara de validação com o Form Collective do Laravel.
Abaixo o trecho do código com um campo:
{{Form::label('comp_nota','Competência')}}
{{Form::text('comp_nota','',['class'=>'form-control','required','placeholder'=>'Ex: 08/2018'])}}
Preciso que ao digitar a competência o campo adicione a / no meio do campo. exemplo: 02/2018
, ou seja, o usuário só digita 022018
.
O que posso usar galera?
O Form Collection
do Laravel não é para colocar mascara em qualquer input
ele só cria o input e nada mais, tudo isso é feito por Javascript
que a linguagem que roda do lado do cliente
(agora tem node que roda do lado do servidor também mas, são coisas em momentos diferentes).
Para solucionar seu problema utilize jQuery e jQuery.mask e um rotina igual a essa:
html:
<input type="text" id="comp_nota" name="comp_nota" />
javascript:
$("#comp_nota").mask("99/9999");
plugin:
https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js
exemplo:
https://jsfiddle.net/cz154tug/3/
se quiser algo diferente por exemplo digitar os números depois atribuir a mascara como está na pergunta é só mudar o javascript da seguinte forma:
$("#comp_nota").focus(function(){
$(this).val($(this).val().replace('/',''));
$(this).mask("999999");
}).blur(function(){
$(this).mask("99/9999");
});
exemplo:
https://jsfiddle.net/naeksby3/6/