PDA

View Full Version : Dubbi in JavaScript


xxx Alcatraz xxx
20-07-2003, 15:37
Salve,
sto cercando di imparare il JavaScript con i tutorial di un libro. Ho alcuni dubbi che non trovano soluzione, potete aiutarmi?
1- In questo codice riassunto, quando premo Stima dei pagamenti rateali l'anchor mi funziona, però il focus non mi funziona. Perchè?



<SCRIPT language="JavaScript">
function doMort() { document.MortCalc.Importo.focus()
document.MortCalc.Importo.value=" " }
</SCRIPT>
<BODY>
<A HREF="#LoanCalc" onclick="doMort()">Stima dei pagamenti rateali</a>
<FORM Name="MortCalc">
<TABLE>
<TR>
<TD><A NAME="LoanCalc">Importo del Credito:</a></TD>
<TD><INPUT Type="text" Name="Importo" value=" " Size="9"></TD>
</TR>
<TR>
</TABLE>
</FORM>
</CENTER>




2- In queste righe invece, funziona tutto! Ma non capisco perchè :P , infatti sul sito di W3C si afferma che la funzione window.setTimeout() funziona solo UNA volta; ma allora perchè in qui viene ripetuto continuamente?




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento senza titolo</title>
<script language="JavaScript">
<!-- Nascosto ai vecchi browser
var scrollMsg = "Ciao a tutti!"
var msgSpace = " "
var beginPos = "0"
function msgScorrevole() {
document.msgForm.msgScorrevole.value = scrollMsg.substring(beginPos,scrollMsg.length)+msgSpace+scrollMsg.substring(0,beginPos)
beginPos = beginPos + 1
if (beginPos > scrollMsg.length) { beginPos = 0
}
window.setTimeout("msgScorrevole()",250) }
-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body onload="msgScorrevole()">
<FORM Name="msgForm">
<INPUT Type="text" Name="msgScorrevole" Size="23">
</FORM>

</body>
</html>






Attendo risposte,




byez! :)

cisc
20-07-2003, 20:37
a quanto ho capito, ha problemi con l'href, così funziona:
<A HREF="javascript:doMort();">Stima dei pagamenti rateali</a>

per il secondo script, se guardi bene noterai che all'interno di una funzione c'è un setTimeout, che chiama la funzione stessa!!!!!, quindi è una chiamata ricorsiva alla stessa funzione con un'intervallo settato da setTimeout.

ciao.


P.S:il window nella chiamata a setTimeout lo puoi evitare.

xxx Alcatraz xxx
20-07-2003, 22:18
Ciao! Innanzitutto, ti ringrazio per la risposta :)
Sul secondo problema, si ora ho capito :cool: era straevidente ma non ci ero arrivato :muro:

Nel primo invece, il problema non scompare anzi. Con il tuo codice, mi va a caricare una inesistente pagina: java script:doMort();. Con il mio code invece, la funziona va a metà! Cioè mi cancella il valore del form (document.MortCalc.Importo.value=" " ma non mi funziona il focus! document.MortCalc.Importo.focus() . Uffa non ci capisco più niente :(







Byez!

cisc
20-07-2003, 23:02
scusa...., devi scrivere javascript, non java script

xxx Alcatraz xxx
21-07-2003, 08:18
Ciao! Si in effetti ora funziona la funzione (scusa il gioco di parole) ma l'anchor #LoanCalc non vien più considerato :( . Io vorrei che mi partissero entrambi sia l'ancor che la funzione.






Byez!

cisc
21-07-2003, 21:42
guarda, a quanto ho potuto capire, o fa il focus al campo di testo o va alla'ancora specificata...