PDA

View Full Version : JavaScript, dove sbaglio?


ZackS
02-05-2004, 19:37
Non guardate la stupidità del codice... sto iniziando :O :D


<html>
<head>
<title>Untitled</title>
<SCRIPT LANGUAGE="JavaScript">
<!-- Nascondi
function scelta(selezione) {
if (selezione == "Maiuscolo") {
document.Compila.Nome.value = document.Compila.Nome.value.toUpperCase()
document.Compila.Cognome.value = document.Compila.Cognome.value.toUpperCase()
}
else {
document.Compila.Nome.value = document.Compila.Nome.value.toLowerCase()
document.Compila.Cognome.value = document.Compila.Cognome.value.toLowerCase()
}
}
// -->
</script>
</head>
<body>
<FORM NAME="Compila">
Nome: <INPUT TYPE="Text" NAME="Nome"> <br>
Cognome: <INPUT TYPE="Text" NAME="Cognome"> <br>
<br><br>
<INPUT TYPE="Button" NAME="Maiuscolo" VALUE="Tutto Maiuscolo" onClick="scelta(Maiuscolo)"><br>
<INPUT TYPE="Button" NAME="Minuscolo" VALUE="Tutto Minuscolo" onClick="scelta(Minuscolo)">

</form>


</body>
</html>


In teoria non dovrebbe cambiare quello che ho scritto nei campi in minuscolo o maiuscolo?

Zeus84
02-05-2004, 20:56
ti dico la verità anch'io sono alle prime armi, ma posso darti qualche suggerimento..
io proverei a scrivere document.Compila.Nome.value.toString().toUpperCase()...poi mettici un ;..
fammi sapere

Zeus84
02-05-2004, 21:34
ho provato a fare le correzzioni che ti avevo suggerito ma non funziona lo stesso..
allora il problema è nell'if....quando fa il controllo selezione=="Maiuscolo"...da sempre falso, infatti se scrivi in maiuscolo e premi uno qualunque dei due tasti il testo diventa minuscolo..
aspetta qualcun'altro...non so proprio che dirti...pensando al java mi viene il dubbio che anche il javascript non associ all'operatore == l'uguaglianza dei riferimenti..il problema è che non sono riuscito a trovare un metodo .equals()....

ZackS
02-05-2004, 23:23
ths per la disponibilità :)
Ho seguito il tuo ragionamento, è vero... quella condizione non viene mai soddisfatta... :what:

lombardp
03-05-2004, 06:52
L'errore dovrebbe essere questo:

onClick="scelta(Minuscolo)"
onClick="scelta(Maiuscolo)"

Il problema è che se scrivi così, Minuscolo e Maiuscolo sono variabili. Invece nella funzione vuoi che siano il valore contenuto da stringhe.

La dicitura corretta è:

onClick="scelta('Minuscolo')"
onClick="scelta('Maiuscolo')"

ZackS
03-05-2004, 08:24
capito! grazie mille :)

ZackS
03-05-2004, 17:23
un altra cosa:


function controlla(Oggetto, NomeOggetto){

var risultato = ""
var i = 1

for (var Proprietà in Oggetto) {
if (i <= 12) {
risultato += NomeOggetto + "." + Proprietà + " = " + Oggetto[Proprietà]
+ " \n"
}
i++
}
alert("Ecco il contenuto dell'oggetto "
+ NomeOggetto
+ ": \n"
+ risultato)
}


Non mi è chiaro questo:
risultato += NomeOggetto + "." + Proprietà + " = " + Oggetto[Proprietà]

che sarebbe:
risultato = risultato + NomeOggetto + "." + Proprietà + " = " + Oggetto[Proprietà]

Perchè bisogna inserire nuovamente la variabile risultato?

lombardp
04-05-2004, 06:38
Nell'esempio che hai riportato, sembra che l'unico motivo sia ripetere 12 volte la stessa riga di testo, altrimenti non ce ne sarebbe bisogno.