Atualmente a mensagem de erro do meu ValidateForm está conforma a imagem, é possível configurar isso melhor, espaçamento, alinhamento, etc?
Atualmente a mensagem de erro do meu ValidateForm está conforma a imagem, é possível configurar isso melhor, espaçamento, alinhamento, etc?
Boa tarde @Marcilio,
você pode usar a função beforeSendValidate, ela ocorre antes da solicitação ser movimentada.Você também pode validar os campos separadamente e utilizar a classe has-error, ela estiliza o elemento HTML do seu formulário, deixando com uma coloração vermelha. Segue um exemplo:
var beforeSendValidate = function (numState, nextState) {
//Remove a classe de estilo erro "has-error"
$('#solicitante').parent('div').removeClass('has-error');
//Valida nome do solicitante
if ($('#solicitante').val() == null || $('#solicitante').val() == undefined || $('#solicitante').val() == '') {
$('#solicitante').parent('div').addClass('has-error');
throw("O nome do Solicitante deve ser preenchido!");
}
}
Eu utilizo o validateForm e formato as mensagens de modo a aparecerem no modal ficando como na figura exemplo em anexo.
Basicamente, ao invés de gerar um throw após a validação, eu guardo a mensagem de alerta em uma variável e vou acumulando (concatenando) a cada validação. No final, testo se tem conteúdo e se positivo mostro o throw com a mensagem.
A aparência fica colocando o X vermelho atraves do: antes de cada mensagem e no final um .
if (mensagem != '') { throw "Atenção!!" + mensagem + ""; }
Eu faço da seguinte forma: Lanço uma mensagem em html se o formulário é executado na web, e lanço texto plano se é executado no mobile. Em ambos os casos eu acumulo todas as mensagens de erro.
function validateForm(form) {
var task = getValue("WKNumState");
var message = "";
var hasErros = false;
switch (parseInt(task)) {
case 3: //Na atividade 3 será feitas as seguintes validações
if (isEmpty("txtComprador_Fornecedor", form)) { //se o campo fornecedor estiver vazio
message += getMessage("Fornecedor", 1, form); //Eu armazeno uma mensagem com o texto Fornecedor, do tipo 1 (Campo de Texto). Olhe as funções auxiliares no final do código
hasErros = true;
}
if (isEmpty("selectComprador_dest", form)) {
message += getMessage("Destino da mercadoria", 2, form);
hasErros = true;
}
if (isEmpty("selectComprador_tipo", form)) {
message += getMessage("Tipo do pedido", 2, form);
hasErros = true;
}
if (isEmpty("txtAreaComprador_obsForn", form)) {
message += getMessage("Observações", 1, form);
hasErros = true;
}
break;
case 6:
if (isEmpty("selectDiretorCompras_aprovLev", form)) {
message += getMessage("Aprovar levantamento?", 2, form);
hasErros = true;
}
break;
}
if (hasErros) {
if (isMobile(form)) throw message;
throw "<ul style='list-style-type: disc; padding-left:90px' class='alert alert-danger'>" + message + "</ul>";
}
}
function isEmpty(campo, form) {
var valor = form.getValue(campo);
return valor == null || valor.trim().length() == 0 || typeof valor === undefined;
}
function isMobile(form) {
return form.getMobile() != null && form.getMobile();
}
function getMessage(texto, tipoMensagem, form) {
if (isMobile(form)) {
switch (tipoMensagem) {
case 1:
return 'Campo "' + texto + '" não pode estar vazio\n';
case 2:
return 'Selecione uma opção em "' + texto + '" \n';
}
} else {
switch (tipoMensagem) {
case 1:
return "<li>Campo: <b>" + texto + "</b> não pode estar vazio</li>";
case 2:
return "<li>Selecione uma opção em: <b>" + texto + "</b></li>";
}
}
}
Na function isEmpty(campo,form) esse campo seria o que? E na function getMessage(texto, tipoMensagem, form), o que seria esses campos?
— Marcilio Eloi da Silva 22 de Mar de 2019Na função isEmpty(campo,form) o campo é o name
no HTML do formulário, usado para recuperar o valor de um campo do formulário e verificar se este é vazia. Na função getMessege o texto
é o texto que vai aparecer na mensagem de erro, o tipoMensagem
define se a mensagem é para um campo de texto (tipo 1) ou para um select (tipo 2). Em ambas as funções é passado o form
, uma instacia do formulario, para recurperar os valores do formulario ou verificar se o mesmo esta sendo executado em um computador ou celular (para enviar mensagem de erros diferentes em cada caso)
Danilo, pode me mostrar como está implementado o campo no form? Pois não consegui implementar ele pra poder chamar depois na função.
— Marcilio Eloi da Silva 25 de Mar de 2019