Newsgroup: it.comp.lang.javascript
Titolo: variabile data?

Ho questo:
 
<input id="datepicker" name="datepicker" 
OnChange="location.href='appuntamenti.asp?newd='+this.value" size=6 
disabled="disabled"/>
 
che collegato a
 
$("#datepicker").datepicker({
     dateFormat: "dd/mm/yy",
     constrainInput: true,
     buttonImage: 'immagini/calendario.png',
     buttonImageOnly: true,
     buttonText:'Click cambia data',
     showAnim: 'slideDown',
     showOn: 'button'		
      });
 
Funziona benissimo e l'evento Onchenge "ubbidisce".
Ho provato ad assegnare un valore diverso a #datepicker attraverso questo:
 
<img SRC="../immagini/minimedicalsnake.jpg" class="Snake" title="Click 
per data di oggi" NOSAVE height=49 width=50></a>
 
collegato a questo codice:
 
$('.Snake').click(function(){
var dNow = new Date();
d=(dNow.getDate() + '/' + dNow.getMonth()+1) + '/' + dNow.getFullYear();
$("#datepicker").val(d);
 
Il valore viene regolarmente scritto nell'input #datepicker ma OnChange 
non da segni di vita.
Non sono espertissimo di JS e non so se sto dicendo una stron..ta, ma ho 
pensato potesse trattarsi di tipologia di variabile, come avviene in VB, 
cioè di un problema di conversione della stringa in data....
Già, se fosse così, come converto la stringa in data? Tenendo conto 
delle mie impostazioni di .datepicker:
 
dataz=new Date(d) infatti mi ritorna un valore stringa comprendente: 
mese in lettere, giorno settimana, giorno del mese, anno
mentre io ho bisogno di es. 25/12/2014 insomma di quanto viene 
visualizzato quando clicco un giorno in .datepicker
 
-- 
Gulp®

 non da segni di vita.
 
Corretto.
Non fai prima al termine della funziona ad invocare .click(), visto che 
già usi jquery?


 
Spiegami meglio, grazie.... cosa mi sfugge?
 
-- 
Gulp®

Il 28/01/14 14.03, Cristiano Larghi ha scritto:

Fatto.GRAZIE!!
 
Ma mi spieghi come mai con click funziona, (naturalmente dopo aver tolto 
il blocco al campo) e con onchange no? In fin dei conti assegnando il 
valore, dal momento che viene scritto nel campo input, costituisce pur 
sempre un cambiamento di stato del controllo!
 
-- 
Gulp®

 sempre un cambiamento di stato del controllo!
 
Perché funziona con click() non lo so, era solo un tentativo, non ci ho 
studiato su cosa fa Jquery in click().
 
Onchange non funziona perché, da specifiche, "The onchange event occurs 
when a control loses the input focus and its value has been modified 
since gaining focus.". 
 
Forse click() implicitamente dà focus e poi lo toglie?

 cioè di un problema di conversione della stringa in data....
 
No, è una questione di eventi. Si applica praticamente a tutti gli
eventi di interfaccia utente. Per esempio, se hai un event handler su
`onsubmit` di una form, e chiami il metodo `submit` da codice,
`onsubmit` non dà segni di vita; mentre invece se il submit viene fatto
dall'utente, allora viene scatenato.
 
Per intenderci, quindi, 'onChange' viene invocato solo se c'è un
effettivo cambiamento del valore, che deriva dall'interazione diretta
dell'utente. Se vuoi cambiare il valore, ed eseguire il codice che hai
associato a 'onChange' (o a qualsiasi evento di interfaccia), devi farlo
esplicitamente. In jQuery sarebbe tipo:
 
    $("#mytext").val('foo').change();
 
 

Il 29/01/14 12.56, ZER0 ha scritto:
.....
 
Tutto molto esauriente e chiaro. Mi hai aperto un mondo!
Grazie, ciao
-- 
Gulp®