Olá pessoal.
Estou usando o jquery.meio.mask.js para formatar meus campo. Por exemplo:
<script type="text/javascript">
$(document).ready(function() {
$('input[name="dados:tabCad:precoCusto"]').setMask('decimal');
});
</script>
Funciona normalmente porém o usuário digita da direita para esquerda. Meu problema é que em algumas máscaras eu tenho formato 1.0000000. Digitando da direita para a esquerda o usuário tem que digitar todos os zeros antes do 1. E para a esquerda não tem um limite.
Alguém conhece alguma maneira de corrigir ou algum outro componente ?
Obrigado
Tô usando assim aqui :
<p:inputText maxlength="15" size="20" id="parcela" required="true" value="#{formPropostaBean.bean.valorParcela}" requiredMessage="Preencha este campo com o valor da parcela" >
<f:convertNumber pattern="#,##0.00"></f:convertNumber>
<p:ajax update="parcela, msgParcela" process="parcela" event="change" />
<f:validator validatorId="MoedaValidator" />
</p:inputText>
E o que teria no MoedaValidator ?
é um Validator.
package validator;
import java.math.BigDecimal;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
/**
* Efetua a validação de um valor monetário.
*/
@FacesValidator("MoedaValidator")
public class MoedaValidator implements Validator {
/**
* Método responsável por validar os campos com moeda. Caso ocorra algum erro lança uma ValidatorException.
*/
public void validate(FacesContext ctx, UIComponent comp, Object val) throws ValidatorException {
BigDecimal valor = (BigDecimal) val;
if(val == null)
return;
if (valor.intValue() == 0) {
FacesMessage message = new FacesMessage("Preencha com o valor válido maior que zero");
message.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(message);
}
}
}
Ajudou aqui, muito obrigado por compartilhar…