Ir para conteúdo
Fórum Script Brasil
  • 0

Bloquear input


XandyW

Pergunta

Bom dia.

Estou tento um problema em um de meus projetos. O usuário seleciona qual mês pretende preencher os dados e é gerado um formulário com todos os dias do mês. Quero que ao selecionar uma checkbox relativa ao dia, o respectivo input fique disabled.

Obs: o id de cada input é a data correspondente, por exemplo:

18/05/2011 <input type='text' id='18-05-2011' name='18-05-2011'>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom dia

Vê se é isso que você quer:

<html>
    <head>
        <title></title>
        
        <script>
        function travaDestrava( valor )
        {
            var oElementos = document.getElementsByTagName( 'input' );
            var iElementos = oElementos.length;
            
            for( var i = 0; i < iElementos; i++ )
            {
                if( oElementos[ i ].id == valor )
                {
                    oElementos[ i ].disabled = true;
                    oElementos[ i ].style.backgroundColor = '#f2f2f2';
                }
                else
                {
                    oElementos[ i ].disabled = false;
                    oElementos[ i ].style.backgroundColor = '#ffffff';
                }
            }
        }
        </script>
        
    </head>
    
    <body>
    
        <select id="selDia" onchange="java script:travaDestrava( this.value );">
            <option value="">:: Informe ::</option>
            <option value="18-05-2011">18-05-2011</option>
            <option value="19-05-2011">19-05-2011</option>
            <option value="20-05-2011">20-05-2011</option>
            <option value="21-05-2011">21-05-2011</option>
            <option value="22-05-2011">22-05-2011</option>
            <option value="23-05-2011">23-05-2011</option>
        </select>
    
        <br/>
        <br/>
    
        <input type="text" id='18-05-2011' value='18-05-2011' style="background-color:#ffffff"><br/>
        <input type="text" id='19-05-2011' value='19-05-2011' style="background-color:#ffffff"><br/>
        <input type="text" id='20-05-2011' value='20-05-2011' style="background-color:#ffffff"><br/>
        <input type="text" id='21-05-2011' value='21-05-2011' style="background-color:#ffffff"><br/>
        <input type="text" id='22-05-2011' value='22-05-2011' style="background-color:#ffffff"><br/>
        <input type="text" id='23-05-2011' value='23-05-2011' style="background-color:#ffffff"><br/>
    
    </body>
</html>

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Consegui adaptar o seu código para o meu caso que é um pouco diferente.

Só não consigo desabilitar:

function habilitaCamposFeriado(idInput){
    
// Pega todos campos com nome parecido
    
var oElementos = document.getElementsByTagName( 'input');
    
// Conta quantos campos tem o nome parecido
    
var iElementos = oElementos.length;
    
var feriado = "feriado-";  

for( var i = 0; i < iElementos; i++ )
    {
        
// Confere se está com o mesmo ID
        
if( oElementos[ i ].id == idInput )
 {
            
// Confere se não é o campo folga
            
if(oElementos[i].name == feriado+idInput)
            
{
  // Ele fica habilitado
                
oElementos[ i ].disabled = false;
            
}
else
{
                
// Caso contrário, desabilita
                
oElementos[ i ].value = "******";
                
oElementos[ i ].disabled = true;
    }

}
    }

}

Meu caso:

[ ] CheckBox1 (Feriado) [ ] Checkbox2 (Folga) ----- | TEXT 1 | | TEXT 2 | | TEXT 3 | | TEXT 4 |

Quando marcar o Checkbox1 (feriado), os campos TEXT 1 à 4 e checkbox2 (folga) ficarão disabled.

Quando marcar o Checkbox2 (folga), os campos TEXT 1 à 4 ficarão em readOnly (com valor=FOLGA) e o checkbox1 (feriado) ficará disabled.

Até aí tudo bem.

Só não consigo fazer a operação inversa. Quando clica de novo do CheckBox, desfaz tudo e fica tudo zerado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...