2013-04-30 16 views
5

Voglio attivare il campo di inserimento dalla casella di controllo.Attiva il campo di immissione dall'ingresso casella di controllo

Ho una forma di base qui:

<ul> 
<li> 
    <label id="form-title" for="name3">Specifics:</label> 
<li> 
    <textarea id="name3" name="name3" > 

    </textarea> 
</li> 

</ul> 

Si fa clic sul "Specifiche e attiva il campo Questo può essere fatto con un tag di ingresso al posto di un tag label

Esempio.?:

<ul> 
<li> 
    <input type="checkbox" for="name2">Other...</input> 
    <input id="name2" name="name2" /> 
</li> 
</ul> 

jsfiddle di lavoro completo finora: http://jsfiddle.net/Sederu/gaZDW/

+0

Stai parlando di abilitare e disabilitare la textarea sulla casella di controllo e deselezionare? –

+0

Nel primo caso ho usato una textarea, ma in questa situazione ne ho bisogno per una casella di input (cosa ottieni se solo ma ''). Quindi si seleziona la casella "altro" e si attiva il campo di inserimento. –

risposta

13

Per questo è necessario un piccolo script EMCAS.

<label for="name3"> 
    <input type="checkbox" id="name3activaitor" onclick="if(this.checked){ document.getElementById('name3').focus();}" /> 
    Other... 
</label> 
<input type="text" id="name3" name="name3" /> 

Il gestore in linea vede se la casella di controllo è stata selezionata e, in caso affermativo, mette a fuoco l'immissione di testo. Inserisco la casella di controllo nell'etichetta solo per raggrupparla simeticamente con l'etichetta in quanto esegue la stessa funzione, ma puoi mettere la casella di controllo ovunque desideri.

Se stai cercando di attivare/disattivare il campo di input, piuttosto che concentrarsi solo esso, si può fare in questo modo

 <input type="checkbox" onclick="var input = document.getElementById('name2'); if(this.checked){ input.disabled = false; input.focus();}else{input.disabled=true;}" />Other... 
     <input id="name2" name="name2" disabled="disabled"/> 
+0

Quindi non c'è modo di farlo con solo html? –

+1

No, l'attributo for funziona solo sulle etichette. –

+0

Ho avuto il primo javascript per funzionare, ma non sono riuscito a far funzionare il secondo. Cosa fa diversamente? Cosa intendi per abilitazione/disabilitazione? –

4

L'attributo non esiste per il tag input. Per il vostro scopo, usare inline codice javascript e attributo disabled:

<input type="checkbox" id="checkbox1" onclick="if (this.checked){ document.getElementById('textarea1').removeAttribute('disabled');}" /> 
<textarea id="textarea1" name="textarea1" disabled></textarea> 
1

Si può fare con poco javascript,

HTML

<ul> 
<li> 
    <input type="checkbox" id="checker" for="name2">Other...</input> 
    <input id="name2" name="name2" /> 
</li> 
</ul> 

JAVASCRIPT

document.getElementById('checker').onchange = function() { 
if(this.checked==true){ 
    document.getElementById("name2").disabled=false; 
    document.getElementById("name2").focus(); 
} 
else{ 
    document.getElementById("name2").disabled=true; 
} 
}; 

Spero che vi aiuterà

-1

Tutte le altre risposte lavorano, ma questo è semplice ::

<input type="checkbox" id="checkbox"><label class="checkbox" for="checkbox"> Remember Me! 

Spiegazione:

  • <input definisce il tag di chiamata.
  • type="checkbox" definire che è una casella di controllo.
  • id="checkbox"> identificandolo come "checkbox".
  • <label class="checkbox" classificandolo come "checkbox".
  • for="checkbox"> chiama tale "casella di controllo"
  • Remember Me! Che cosa dice accanto alla casella di controllo.
Problemi correlati