[JS] Disattivare / Attivare - Input Text

  • Creatore Discussione Creatore Discussione luigi777
  • Data di inizio Data di inizio

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
Salve come da titolo come posso fare disattivare e attivare un input text della form?

codice:
Codice:
<input name="data" type="text"/>

idee?

Grazie mille e buona serata.
 
Chiaramente devi legare le istruzioni ad un evento preciso, ma dovresti in generale poter fare così:

HTML:
//> Seleziono l'elemento di riferimento
var input = document.querySelectorAll('input[name="data"]');

//> Genero l'attributo di disabilitazione
var disabled = document.createAttribute("disabled");
//> Visto che usi la chiusura abbreviata deduco tu utilizzi xhtml, di conseguenza..
disabled.value = "disabled ";

//> Adesso assegnamo l'attributo all'input
input.setAttributeNode(disabled);


//> SE invece volessi rimuoverlo..
input.removeAttribute("disabled");
 
ok, ma associato a un <a href=? come posso metterlo.

<a href="#" onclick="attiva();">Attiva</a>
<a href="#" onclick="Disattiva();">Disattiva</a>

idee?
 
ok, funziona ma il codice php non funziona più.. dice che non trova inserita la data.

la form è composta cosi:

PHP:
<tr>
	<td>Data</td>
	<td><input name="data" type="text"  class="data_input_form"  disabled  value="<?php if(isset($_POST['data'])){echo $_POST['data'];}else { echo  "".date("Y-m-d H:i:s").""; }?>"  />
	<a href="javascript:void(0);" onclick="data_Attiva('input.data_input_form');">Attiva</a>
	<a href="javascript:void(0);" onclick="data_Disattiva('input.data_input_form');">Disattiva</a>
	</td>
</tr>

e il controllo della data è cosi:
PHP:
elseif(empty($dtmPubblicazione))
	{
	$error = "La data di pubblicazione non &egrave; stata inserita";
	}elseif(!isData($_POST["data"]))
	{
	$error = "La data deve avere il formato come segue : ".date("Y-m-d H:i:s")."";
	}

ovviamente c'è :
$dtmPubblicazione = protect($_POST["data"]);
in cima al codice.

la funzione protect è una funzione che mi pulisce i dati dai \ \ \ ..

idee perché il php non rileva i campi disabilitati?

Ti ringrazio molto e buona giornata.
 
ciao, scusa se mi intrometto,
anch'io a suo tempo ho scoperto che php non riceve i campi disabilitati, penso che sia corretto,

forse vuoi impedire la modifica del campo in determinate condizioni, per questo puoi usare "readonly"

anche se la sezione è javascript, permettimi di postare il codice che uso per php (con js al minimo)

l'esempio tratta input testo, radio e checkbox



PHP:
  lock();        // oppure
  unlock();

  $ForMain.="<input type='text' name='txt1' value='".$txt1."'".$readonly." />";

  $ForMain.="<input type='radio' name='rd1' value='V' ".($rd1 == 'V' ? $RBs : $RBu)." /> LetteraV";
  $ForMain.="<input type='radio' name='rd1' value='S' ".($rd1 == 'S' ? $RBs : $RBu)." /> LetteraS";

  $ForMain.="<input type='checkbox' name='cbx1' value='X' ".($cbx1 == 'X' ? $CBs : $CBu)." /> check1<br />";
  $ForMain.="<input type='checkbox' name='cbx2' value='X' ".($cbx2 == 'X' ? $CBs : $CBu)." /> check2<br />";


function unlock() {
  global $readonly,$CBs,$CBu,$RBs,$RBu;

  $readonly = "";

  $CBs = "checked";
  $CBu = "unchecked";

  $RBs = "checked";
  $RBu = "unchecked";
}

function lock() {
  global $readonly,$CBs,$CBu,$RBs,$RBu;

  $readonly = " readonly";

  $CBs = 'checked onclick="this.checked=true"';
  $CBu = 'unchecked onclick="this.checked=false"';

  $RBs = 'checked onclick="this.checked=true"';
  $RBu = 'disabled';
}
 
Ultima modifica:
ciao, scusa se mi intrometto,
anch'io a suo tempo ho scoperto che php non riceve i campi disabilitati, penso che sia corretto,

forse vuoi impedire la modifica del campo in determinate condizioni, per questo puoi usare "readonly"

anche se la sezione è javascript, permettimi di postare il codice che uso per php (con js al minimo)

E' corretto, gli input disabilitati non vengono gestiti dal browser per l'invio del modulo.
Anche se la discussione è inquinata da codice PHP, il nocciolo della problematica credo ruoti ancora attorno ad una manipolazione dinamica del DOM per cui penso stia ancora bene in JS la discussione.

Piuttosto, prima di lanciarmi in ulteriori ipotesi vorrei chiederti come dovrebbe funzionare logicamente il tuo modulo, luigi777, per capire meglio cosa vuoi ottenere.
 
ciao, ok e vi ringrazio molto..

io volevo fare il modo che l'input data non venissine tocato .. e alcune volte se c'è bisogno volevo fare un click per attivarlo e mettere ad esempio la data 2014-06-01 20:07:00 cosi appena è il giorno ed che uno ha scritto la notizia,
si modifica e la mettiamo online anche se e stata scritta il 06 aprile 2014.

ti allego l'immagine.
 

Allegati

  • Modulo.JPG
    Modulo.JPG
    79 KB · Visite: 689

Discussioni simili