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
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
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.
Felipe,
Acho mais fácil validar com o post, no onSave().
Então você pode no setData() tratar mais facilmente,
Att,
Pablo
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