Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Função para habilitar/ desabilitar campos

11 de Julho de 2012, 11:17 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 199 vezes

Bom dia,

Estive procurando em toda o codigo  uma  forma de fazer com que um botão tipo "Editar" habilitar um campo SetReadOnly(true) e quando salvar retornar  para o mesmo estatos de somente leitura.

Como que eu posso fazer para adicionar um campo que inicialmente ele é somente leitura e depos ao clicar em um botam tipo "Editar" ou "Alterar" ele me habilita aos campos no mesmo formulario ?

Eu estou utilizando, para adicionar o campo, assim :

$frm->addTextField('codigo','Nº' ,5,true,5)->setReadOnly(true)->setCss('font-size','14')->setcss('color','blue')->setCss('text-align','center')->setCss('font-weight','bold');

Autor: Luis Almeida


1Um comentário

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    11 de Julho de 2012, 21:54

     

    Luis,

    Isto vai depender da ação do botão, se o formulário estiver sendo submetido ao clicar no botão, então voce pode bloquear/desbloquear os campos testando qual a ação foi submetid . Exemplo:

    $frm->processAction();

     

    if( isset($acao) && $acao == 'editar')

    {

     $frm->getField('codigo')->setReadOnly(false);

    }

    Se voce setiver utilizando ajax ou quiser proteger/desproteger os campos utilizando javascript faça assim:

    // desproteger

    jQuery("#codigo,#campoA,#campoB").removeAttr('readonly');

    // proteger

    jQuery("#codigo,#campoA,#campoxB").attr('readonly','true');

    Outra forma, inclusive a que eu utilizaria é a seguinte.

    Dizer ao form para chamar a função init() toda vez que ele for construido ( postado ). Ex: $frm->addJavascript('init()');

    Criar a função init() em javascript no final do arquivo  ou no arquivo js do módulo.

    <script>

    function init()

    {

    var acao = jQuery('#formDinAcao').val();

    if( acao == 'editar')

    {

    jQuery("#codigo,#campoA,#campoB").removeAttr('readonly');

    }

    else

    {

    jQuery("#codigo,#campoA,#campoB").attr('readonly','true');

    }

    }

    </script>

    Eu prefiro criar todo o form primeiro, sem nenhuma regra, e somente depois configura-lo utilizando javascript.

    Abraço.

Essa comunidade não possui posts nesse blog