Javascript ... простой вопрос, как сохранить форму на странице после отправки - PullRequest
1 голос
/ 22 октября 2010

Пожалуйста, посмотрите следующий пример кода, который берет год и дату и отображает данные обратно при отправке ...

 <!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>

То, что я пытаюсь выяснить, - это как ОСТАВИТЬ форму на странице после того, как происходит document.write .. (чтобы пользователю не нужно было нажимать кнопку назад, чтобы попробовать новые данные!

Ответы [ 4 ]

1 голос
/ 22 октября 2010

Похоже, вы используете пример 1995 года для написания своего HTML ... Вам просто нужно прочитать несколько более современных руководств по html / javascript. Еще несколько хороших вещей, которые нужно почистить:

  1. Атрибут language = "javascript" запрещен. Вам нужно только указать <script type="text/javascript">
  2. лучше использовать строчные в вашем элементе декларации (то есть: <p> вместо <P>)
  3. Для каждого элемента, который вы открыть, нужно закрыть. Таким образом, для каждый <p>, вам нужен </p>. Если там не является закрывающим тегом, т.е. самозакрывающийся, как у <br> тег, вы должны написать это: <br />, так же, как вы сделали в код document.write Это делает ваш код действительно XHTML-совместимый как Вы указали в своем типе документа.
  4. Как уже говорилось, нет причин передавать форму в функцию javascript. И просто получить доступ к элементам по id и их значениям через innerHTML.
0 голосов
/ 22 октября 2010

document.write() виноват.Обычно вы должны избегать этого любой ценой в пользу манипуляций с DOM и методов AJAX.См. здесь и здесь и, в частности, здесь , и существует метрическая тонна охвата этой темы в Интернете.

0 голосов
/ 22 октября 2010

Попробуйте написать в div вместо документа, форма все равно будет видна

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

и в javascript:

document.getElementById('myResult').innerHTML = 'your text here'
0 голосов
/ 22 октября 2010

Не используйте document.write - если вы используете его после загрузки страницы, вы по сути создаете новый документ. Вы можете использовать функции DOM javascript или просто

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


<script> document.getElementById('results').innerHTML = "Your text here"; </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...