[Resolvido] Readonly Para Dropdownlist Do Yiibooster

Bom dia pessoal, preciso de uma ajuda.

Quando coloco um componente dropDownListRow ou datepickerRow do Yiibooster como readonly, ele apenas coloca o campo com o aspecto "readonly", porém permite alteração de dados. Com o Input comum (textFieldrow) dá certo.

Não posso colocar o campo como "disabled", porque preciso que os dados do formulário sejam passados para o Controller.

Segue um exemplo do código que estou usando:




?php echo $form->dropDownListRow($model, 'id_tipopgto', CHtml::listData(Tipopg::model()->findAll(), 'id', 'tipo'), 

					array('empty' => '--Selecione--','class'=>'span8', 'readonly'=>$readonly)); 



Já usei os valores "true" ou "readonly" na variável $readonly do código acima … mas ambas continuam permitindo alteração.

Será que isso tem solução ou vou ter que fazer um IF no meu programa, para exibir o Dropdownlist apenas quando for editável … e quando for readonly, exibo um Input comum ?

Em anexo, podem ver que o campo está "cinza" como se fosse readonly, porém permite mudar os valores.

Abraços,

Gustavo,

Se você tiver usando uma outra opção para habilitar e desabilitar o campo, faz com disabled.

Os campos <select> com readonly são os únicos que o usuário tem acesso para alterar, o que não poderia ocorrer.

Ai você cria um campo type="hidden" com o mesmo nome, id e valor. Assim você consegue manter o <select> sem alteração.

Se precisa habilitar via jquery, coloca um .remove() no campo type="hidden", senão quando for submeter o formulário, o $_POST prioritário sempre será do input hidden.

Eita … lá vamos nós dar nó no sistema então.

Já deviam ter resolvido esse negócio do <select> heim !!

Fiz assim Newerton:




<?php 

echo $form->dropDownListRow($model, 'id_tipopgto', CHtml::listData(Tipopg::model()->findAll(), 'id', 'tipo'), 

					array('empty' => '--Selecione--','class'=>'span8', 'disabled'=>$readonly));

if ($readonly) { echo $form->hiddenField($model,'id_tipopgto'); }

?>	



Vou usar o disabled por padrão… e fiz um if pra adicionar o hidden apenas quando o disabled ativar. Assim não perco a informação no $_POST.

Valeu a dica !!