Newsgroup: it.comp.lang.javascript
Titolo: checkbox ... text?

Ciao a tutti,
c'e' un modo per leggere da javascript la stringa "ciao mondo (PO)" del
checkbox qua sotto?
[...]
<INPUT TYPE="checkbox" NAME="convocati" VALUE="10" CHECKED
onclick="carica()">ciao mondo (PO)<BR>
[...]
function carica ()
{
alert (document.form.convocati[1].???);
}
cosa ci va al posto dei puntini per far stampare ciao mondo (PO)??
grazie
Mauro

 checkbox qua sotto?
quel "ciao mondo (PO)" non è che se lo metti dopo <input>
automaticamente prende a farne fa parte. non ha senso quello
che chiedi, né tantomeno il codice che hai buttato giù.
Ti conviene re-impostare il tutto.
oddio, a me viene in mente una cosa del tipo:
<input id=chkbox0 type=checkbox name=convocati value=10>
<label for=chkbox0>ciao mondo (PO)</label>
il testo contenuto in <label>...</label> sarebbe una specie di "link"
cliccando il quale puoi settare la checkbox proprio come se ci facessi
click sopra, ma non penso si possa recuperare il testo tramite js...
tutto ovviamente imho, aspetto eventuali smentite da guru quali
Cristiano Larghi o ZER0.
raenkrus

 grazie
Prego.
-- 
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth."

 alert(document.form.convocati[1].nextSibling.nodeValue)
Non andrebbe bene anche this.nextSibling.nodeValue?
-- 
Nando [?]
Ex-Apostolo della Ex-Prova

 ma non penso si possa recuperare il testo tramite js...
Il testo, nel DOM, è un nodo. Quindi tranquillamente gestibile, parimenti
un elemento. O quasi.
Sfortunatamente, IE ha un supporto parziale del DOM e quindi spesso vi sono
differenze... nel peggiore dei casi, talvolta è impossibile da fare benché
lo standard lo preveda (provate a inserire un entity a sè stante. In IE è
impossibile, nativamente).
Per la cronaca, questi sono i tipi di nodi presenti in gecko:
ELEMENT_NODE
ATTRIBUTE_NODE
TEXT_NODE
CDATA_SECTION_NODE
ENTITY_REFERENCE_NODE
ENTITY_NODE
PROCESSING_INSTRUCTION_NODE
COMMENT_NODE
DOCUMENT_NODE
DOCUMENT_TYPE_NODE
DOCUMENT_FRAGMENT_NODE
NOTATION_NODE
IE, per quanto riguarda l'HTML, gestisce i seguenti:
ELEMENT_NODE
TEXT_NODE
(il tipo di nodo lo possiamo recuperare tramite la proprietà nodeType,
restituisce un valore intero)
Grazie a dio, almeno i nodi di testo rientrano nel supporto minimale di IE.


 Non andrebbe bene anche this.nextSibling.nodeValue?
Tu hai il brutto viziaccio di postare, prima di fare anche una semplice
prova.. :)
In primis, rispondevo esattamente alla domanda posta (ovvero "cosa ci
va..").
Seconda di poi, no, non sarebbe andato bene. Il codice è scritto dentro una
funzione chiamata "carica()" e assegnata al checkbox tramite attributo di
tag. Ergo, dentro tale funzione il "this" non è l'elemento checkbox, ma la
finestra corrente.
Ricordati che *ogni* variabile o funzione è proprietà o metodo dell'oggetto
window. Tu scrivi "alert(0)" ma perché window è il contesto dello script.
In verità, stai usando il metodo "alert" dell'oggetto "window"
(window.alert.. allo stesso modo con il quale si fa window.open() ).
Avrebbe funzionato se l'assegnazione fosse stata fatta direttamente in js:
checkboxReference.onclick=carica;
A questo punto associ a onclick il riferimento della funzione carica, e non
una funzione anonima che si occupa di eseguirla. In tal modo "this" punta
effettivamente all'oggetto checkbox.
Solitamente, se si preferisce impostare tali funzioni da attributi, è
preferibile usare la forma seguente:
onclick="carica(this)"
e da codice:
function carica (sender){..}
Come avrai sicuramente visto fare in questo NG un godziliardo di volte.
In questo modo, benché nella funzione il "this" sia riferito ad un contesto
differente, hai passato come parametro il riferimento precedente.
Ma, come ti ho detto, rispondevo unicamente alla domanda.


 Come avrai sicuramente visto fare in questo NG un godziliardo di volte.
E non avevo ancora capito bene il perche', e nun t'incazza' :)


 E non avevo ancora capito bene il perche', e nun t'incazza' :)
Guarda che non sono incazzato, anche qui stavo solo sottolineando la cosa :) 
E' difficile che m'incazzi... Sul NG poi. Al limite mi altero.
-- 
Peace is a lie, there is only passion. Through passion, I gain strength.
Through strength, I gain power. Through power, I gain victory.
Through victory, my chains are broken. The Force shall free me. (Sith Code)

 sia nel medesimo contesto della domanda posta" :P
Come non quotare :-)


 	alert(document.form.convocati[1].nextSibling.nodeValue);
Grazie!!!
Sempre gentilissimo.
ciao
Mauro
P.S.
La mia form aveva nome form, ma lo cambio istantaneamente (me lo avevi
anche gia' detto in un vecchio post mi pare di ricordare) :-)

 volente o nolente, non scriverà più certe cose sul NG.
Paura... mi impegnero' a imparare prima :)
Senti... hai per caso letto il post col quale ti ho risposto in un vecchio
thread?


 	alert(document.form.convocati[1].nextSibling.nodeValue);
ancora una richiesta, mi puoi consigliare un libro o una risorsa on line
per approfondire le mie scarse conoscenze di javascript?
Io uso "Javascript: La guida (versione 1.5)" di Apogeo, ma non mi trovo
molto bene. In particolare non trovo traccia del metodo che mi hai
consigliato tu nel libro ....
ciao
Mauro

 per approfondire le mie scarse conoscenze di javascript?
Guarda, sono la persona meno indicata a cui chiedere libri cartacei
sull'informatica, in special modo sulle tecnologie web related. Per quanto mi
riguarda, i libri cartacei informatici da avere si contano sulle dita di una
mano. Il resto fa volume.
Per quanto riguarda le risorse online, posso solo consigliarti le reference:
#DOM w3c
http://www.w3.org/DOM/
#DOM Gecko
http://www.mozilla.org/docs/dom/domref/
#DOM IE
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp
#Javascript 
http://developer.mozilla.org/en/docs/Category:JavaScript:References
#JScript (IE)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/1e9b3876-3d38-4fd8-8596-1bbfe2330aa9.asp
-- 
There is no emotion; there is peace.
There is no ignorance; there is knowledge.
There is no passion; there is serenity.
There is no death; there is the Force. (Jedi Code)