Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Limitar escolhas em TDBCheckbox Olá, Gostaria de limitar a mínimo de 1 e máximo de 3 o número de opções que um usuário poderá escolher em um campo do tipo TDBCheckbox. Setei uma action para o campo $especialidades_list->setChangeAction( new TAction( array($this, 'onEspecialidadesChange')) ); E criei uma função que exibe uma mensagem se o usuário selecionar mais que 3 elementos public static fu...
FC
Limitar escolhas em TDBCheckbox  
Fechado
Olá,

Gostaria de limitar a mínimo de 1 e máximo de 3 o número de opções que um usuário poderá escolher em um campo do tipo TDBCheckbox.
Setei uma action para o campo

$especialidades_list->setChangeAction( new TAction( array($this, 'onEspecialidadesChange')) );

E criei uma função que exibe uma mensagem se o usuário selecionar mais que 3 elementos

public static function onEspecialidadesChange($param)
{
if (count($param['especialidades_list'])>3)
{
new TMessage('info', 'Máximo de 3 áreas de interesse, remova uma área escolhida');
}
}

Agora não sei como remover o quarto elemento selecionado. Estou fazendo do jeito certo? Como posso obter o resultado que desejo?

Abs,

Felipe

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


FC

dentro dessa função que criou vc tera receber o array contar identifcar o ultimo remover e devolver para form pela rotina send form. igual do exemplo tutor de interação.
PD

Felipe,

Acho mais fácil validar com o post, no onSave().
Então você pode no setData() tratar mais facilmente,

Att,
Pablo
FC

Obrigado Pablo, tinha deixado o projeto um pouco de lado e por isso não implementei logo, mas hoje tentei sua sugestão e deu certo. Porém ele remove as opções em excesso apenas quando salvo (onSave) o comportamento que eu gostaria mesmo era o de remover a última opção clicada pelo usuário assim que ele clicasse mais do que o permitido e não apenas depois dele ter pedido para salvar.
De qualquer modo está funcionando, obrigado.

Abs,

Felipe