Javascript / HTML> Форма / Ввод> автоматическое срабатывание при каждой загрузке страницы - PullRequest
0 голосов
/ 29 июня 2009

Мне пришлось взять мой рабочий пример здесь. По какой-то причине он работает не так легко, как в первоначальном примере.

Новый пример Предположим, я хочу видеть M5 каждый раз, когда загружается страница. Так как я могу запускать один и тот же запрос для M5 каждый раз при загрузке страницы?

Я скопировал критическую часть здесь:

<body>
<div id="search">
         <form onSubmit="makeRequest(1); return false;" style="margin: 2px; padding: 2px; font-size: 1.2em;">   
        <input id="searchinput" type="text" name="tags" size="20" value="">
        <input id="searchbutton" type="button" onClick="makeRequest(1);" value="Create VideoWall"><br />
...
</form>
</div>

Ответ на идею в ответе MiffTheFox и Тома

Итак, я добавил команду перед формой выше:

<body onload="document.getElementById('myform').submit();"> 

Однако стена остается черной. Он должен быть полон M5s.

Возникла проблема с начальным вопросом: Почему не работает? Почему стена остается черной?

makeRequest по запросу Тома

function makeRequest(page){
    startrequest = 0;
    for(i =1; i < 4; i++){
        clearList('ul'+i);
        var tags = encodeURI(document.getElementById('searchinput').value);

        if(i == 1 || i == 2){
            quantity = 45;
        }

        if(i == 3){
            quantity = 36;
        }
        insertVideos('ul'+i,'search',tags,quantity,startrequest);
        startrequest = startrequest + quantity;
    }
}

Пожалуйста, посмотрите ссылку вверху и нажмите CTRL + U, чтобы увидеть код.

Ответы [ 3 ]

1 голос
/ 29 июня 2009

Не уверен, что вы пытаетесь достичь, но вы, безусловно, можете использовать jQuery, чтобы сделать

$ (документ) .ready (function () { . $ ( "# SubmitButton") нажмите кнопку (); });

Проблема заключается в том, что это происходит только при первой подаче документа; вам нужно будет отслеживать это на стороне сервера и удалить код отправки после первого раза.

Лучшим подходом, вероятно, является компоновка вашего HTML на стороне сервера, чтобы отображалось любое начальное состояние, которое вы хотите отобразить. Многие веб-приложения имеют форму для отправки какого-либо запроса (скажем, поиска), но начинаем с некоторого исходного примера результата под формой. Это просто создается на стороне сервера перед загрузкой, а не путем «предварительной отправки».

1 голос
/ 29 июня 2009

Ну, есть атрибут загрузки внутри элемента body

<body onload = "javascript:doSubmit()">
...
</body>

<script>
function doSubmit(){
var form = document.getElementById("myform");

if (form !=null)
  form.submit();

}
</script>

Кроме того, вы можете добавить JavaScript в конце вашей HTML-страницы. Это не так портативно, как первый вариант

<html>
 <body>
  <form id="myForm" ...>
   ...
  </form>
 <script>
  //this executes when the page finishes loading
  var form = document.getElementById("myForm");

  if (form!=null) form.submit();
  </script>
 </body>
</html>
1 голос
/ 29 июня 2009

Сначала добавьте идентификатор в форму, затем добавьте обработчик onLoad, который отправляет его.

<body onload="myForm.submit();">
<form id="myForm" name="input" action="form_action.asp" method="get">
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...