Copy link to clipboard
Copied
Boa noite a todos, ca estou eu a pedir a vossa preciosa ajuda.
Tenho um campo select com o nome de "tipo_servico" e vários checkbox com os nome exemplos (total, parcial, noturno, etc)
fiz o script abaixo e coloquei no campo tipo_servico em "Ações" quando o select perder o foco executar o script:
// Obtém o resultado do campo 'select' e seleciona o 'checkbox' correspondente
var campo1 = this.getField('tipo_servico');
var checkbox1 = this.getField('total');
var checkbox2 = this.getField('parcial');
// Função para verificar a seleção e marcar/desmarcar o checkbox2
campo1.setAction('Keystroke', function() {
// Usando switch para verificar o valor selecionado no campo1
switch(campo1.value) {
case 'total':
// Marca o checkbox total quando 'total' for selecionado
checkbox1.checkThisBox(0, true);
break;
case 'parcial':
// Marca o checkbox parcial quando 'parcial' for selecionado
checkbox2.checkThisBox(0, true);
break;
default:
// Caso nenhum item específico seja selecionado, desmarcar os checkbox
checkbox1.checkThisBox(0, false);
checkbox2.checkThisBox(0, false);
break;
}
});
Mas não funciona, o que fiz de errado?
Copy link to clipboard
Copied
Deixo aqui o que faltava para funcionar, não sei se foi o que indicaram.
Todas as respostas estão correctas, mas faltava selecionar o campo da imagem.
Copy link to clipboard
Copied
Check the Javascript console for errors.
Copy link to clipboard
Copied
Esse é o erro:
SyntaxError: function statement requires a name
1:Field:Keystroke
SyntaxError: function statement requires a name
1:Field:Keystroke
SyntaxError: function statement requires a name
1:Field:Keystroke
Copy link to clipboard
Copied
You didn't name the function. MyFunction function(). You also need to run the function after defining it.
Copy link to clipboard
Copied
If you wish to use script as 'On Blur' you can use this:
var campo1 = event.target.value;
var checkbox1 = this.getField('total');
var checkbox2 = this.getField('parcial');
checkbox1.checkThisBox(0,(campo1 == "total")? true : false);
checkbox2.checkThisBox(0,(campo1 == "parcial")? true : false);
Copy link to clipboard
Copied
talvez para duas opções, sim.
Mas caso seja um select com 5 ou mais tipos de seleções talvez seja melhor usar o case
Copy link to clipboard
Copied
também da o mesmo erro.
Copy link to clipboard
Copied
The cScript paramater of the field setAction method must be in quotes and you either have to remove all the line breaks, or concatenate all of them with + and quotes.
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Why do you use setAction in the script?
Copy link to clipboard
Copied
No, that is not correct. You didn't follow what I said. Echoing @Bernd Alheit , why use setAction in the script? setAction is a way to modify the actions of a field without using the user interface, in the console, Action, or custom toolbar button for example. You can simple add your script as validation script without using setAction.
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Deixo aqui o que faltava para funcionar, não sei se foi o que indicaram.
Todas as respostas estão correctas, mas faltava selecionar o campo da imagem.