2010-10-22 4 views
1

S'il vous plaît voir ci-dessous un exemple de code qui prend un an et une date et affiche les données de retour lorsqu'il est soumis ...Javascript ... question simple comment garder la forme sur la page après la présentation

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>JavaScript</title> 
</head> 
<body> 
<FORM NAME="myform" ACTION="" METHOD="GET"> 
Enter the year to start from (eg: 2006): <BR> 
<INPUT TYPE="text" NAME="year" VALUE=""><P> 
Enter starting day (eg: 1= 1st Jan): <BR> 
<INPUT TYPE="text" NAME="day" VALUE=""><P> 
<INPUT TYPE="button" NAME="button" Value="Go!" onClick="testResults(this.form)"> 
</FORM> 
<SCRIPT LANGUAGE="JavaScript"> 
function testResults (form) { 

    var years = form.year.value; 
    var days = form.day.value; 



    for (var x = days; x <= 365; x++) 
    { 

     for (var y = years; y <= 2010; y++) 

     { 

     document.write(' ValueY='+y+'ValueX='+x+' ') 

     } 
    document.write("<br />"); 


} 

} 

function to3P(n){ 
return (n/100).toFixed(2).replace(/\./, ''); 
}; 
</SCRIPT> 
</body> 
</html> 

Ce que je J'essaie de travailler est de savoir comment laisser le formulaire sur la page après le document.write arrive .. (de sorte que l'utilisateur ne doit pas appuyer en arrière pour essayer de nouvelles données!

+1

Vous n'avez pas besoin de NOMS SHOUT ELEMENT ces jours-ci :) – andrewmu

+0

Que voulez-vous dire par "LEAVE"? – oyo

+0

Laisser ... signifie qu'il reste sur la page après avoir cliqué sur le bouton –

Répondre

0

N'utilisez pas de document. write - si vous l'utilisez après le chargement de la page, vous créez essentiellement un nouveau document.Vous pouvez soit utiliser les fonctions DOM javascript ou simplement

<div id="results"></div> 


<script> document.getElementById('results').innerHTML = "Your text here"; </script> 
+0

cheers mate. merci –

+0

Peut vouloir changer la virgule en fullstop avant innerHTML! – Alex

+0

document.getElementById ('results'), innerHTML doit être document.getElementById ('results'). InnerHTML (avec période) – mraaroncruz

0

document.write() est à blâmer. Vous devriez normalement l'éviter à tout prix en faveur de la manipulation DOM et des techniques AJAX. Voir here et here et en particulier here et il ya une tonne de couverture sur ce sujet sur le web.

+0

merci de vérifier les sorties –

0

Essayez d'écrire dans un div au lieu du document, la forme sera toujours visible

<input TYPE="button" NAME="button" Value="Go!" onClick="testResults(this.form)"> 
<div id="myResult/> 

et dans le javascript:

document.getElementById('myResult').innerHTML = 'your text here' 
1

On dirait que vous utilisez un exemple de 1995 pour écrire votre HTML ... Vous devriez simplement lire quelques tutoriels html/javascript plus modernes. Juste quelques bonnes choses à nettoyer:

  1. L'attribut language = "javascript" est déprimé. Vous ne devez spécifier <script type="text/javascript">
  2. Il est préférable d'utiliser minuscules dans votre élément déclarations (à savoir: <p> au lieu de <P>)
  3. Pour chaque élément que vous ouvert, vous devez fermer. Donc pour chaque <p>, vous avez besoin d'un </p>. S'il n'y a pas balise de fermeture, par exemple, il est fermeture automatique, comme l'étiquette <br> , vous devriez écrire: <br />, comme vous l'avez fait dans le code document.write. Cela fait votre code vraiment compatible XHTML comme que vous avez spécifié dans votre doctype.
  4. Comme déjà indiqué, aucune raison de passer dans le formulaire à la fonction javascript. Et accédez simplement aux éléments par id et leurs valeurs via innerHTML.
Questions connexes