Olá pessoal.
Preciso saber como tornar um campo tipo múltiplos registros obrigatório. Eu quero apenas que seja obrigatório a inserção de uma linha, as outros podem ser opcionais.
Eu consegui tornar obrigatório, mas ao enviar a solicitação para frente ele diz que falta preencher o campo, imagino que ele fique em um tipo de ‘loop’ obrigatório e não continua. Como posso fazer este tipo de validação ?
Este é o código HTML
Nome do proponente<strong>*</strong>
Proponente
+ Proponente
Este é o código de validação do campo
function validateForm(form) { var activity = getValue('WKNumState');
if (activity == 1 || activity == 0) {
if ((form.getValue("nomeprop") == null || form.getValue("nomeprop") == "") && (getValue('WKNumProces') == null || (getValue('WKNumProces') > 0 && getValue('WKCompletTask') == 'true'))) {
throw "Digite o nome do proponente"; } }}
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Consegue compartilhar o seu código, por favor?
Obrigado!
Marcos, vou adicionar o código na pergunta.
A validação de tabela pai e filho é um pouco diferente de campos input, por isso está ocorrendo esse "loop" no seu formulário.
Dá uma olhada neste tópico aqui: https://forum.totvs.io/t/formulario-pai-e-filho-validate/11228
O segundo bloco de código da resposta mostra como recuperar os itens de um formulário pai e filho para realizar a validação no validateForm.
Abs,
Marcos
Muito obrigada Marcos, com a inserção e modificação do código publicado no link que você enviou está funcionando de maneira inversa. Quando os campos estão vazio, ele envia a solicitação. Mas quando os campos estão preenchidos, ele mostra a mensagem. Já revisei o código e não identifiquei o que há de errado.
function validateForm(form){
var indexes = form.getChildrenIndexes("tabledetailname8");
console.log(indexes);
if (indexes.length > 0) {
for (var i = 0; i < indexes.length; i++) { // percorre os campos Pai x Filho
if(form.getValue('nomeprop' + indexes[i]) == null || form.getValue('nomeprop' + indexes[i]) == '') {
throw "Informe o valor Ajustado!";
}
}
}
}
Você precisa manter os três underlines no nome dos campos da tabela Pai x Filho. Os campos que possuem ‘’‘____[index]’‘’ o fluig trata como campo de tabela pai x filho.
Mas é exatamente assim que estou fazendo. O código que você enviou é o mesmo que estou utilizando.
@Marcos e @Gabriel, como posso validar a tabela paixfilho quando o input é um dataset? no caso, o ds Collegue.
@NEM IT, da mesma forma, só validar pelo NAME do campo.
Infelizmente não funciona quando eu uso um campo tipo zoom, junto com dataset.
Esse é o meu codigo do campo zoom:
Você preenche algum outro campo quando seleciona um registro no Zoom?
No momento não, posteriormente vou precisar adicionar uma outra coluna chamada N. do Cadastro.
Se você utilizar essa outro campo pra validar, dará certo. Outra possibilidade é fazer a validação no javascript do formulário (eu particularmente utilizo):
var beforeSendValidate = function(numState,nextState){
}
Segue link: Eventos de Formulário - TOTVS Fluig - TDN
E pra pegar a informação do campo zoom, utilize isso:
window["NAME_CAMPO"].getSelectedItems();
Deu certo com o segundo campo. Mais um porém, como eu deixo ‘setado no formulário’ uma linha sem informações no campo múltiplos registros? Pergunto isso, porque se a pessoa não clicar em adicionar informação, ele prossegue. Apenas bloqueia quando a pessoa clica no botão para inserir um registro e não preenche ele.
Você pode dar um click no botão de adicionar filho automaticamente pelo javascript ao carregar o formulário.
Obrigada @Gabriel, sou leiga no assunto. Existe alguma função tipo onload para carregar a função wdkAddChild(‘tabledetailname8’) ? Se não, pode me passar o javascript que eu deveria inserir no formulário?
@Gabriel, consegue me ajudar com o ultimo comentário?
@NEM IT, você pode deixar sua tag
<body>
dessa forma:
<body onload="wdkAddChild('tabledetailname8')">
Teste dessa forma.
É isso aí ! Muito obrigada
Eu não sei, mas quem sabe você pode me ajudar também no na pergunta do forum Tabela da Localização ?