2009-06-29 2 views
0

제 작업 예제를 가져와야했습니다 here. 어떤 이유로 초기 예제처럼 쉽게 작동하지 않습니다.Javascript/HTML> 양식/입력> 페이지가로드 될 때마다 자동 실행

새로운 예 가정하자 나는 M5S 때마다 페이지가로드를보고 싶어요. 그렇다면 페이지가로드 될 때마다 어떻게 M5에 대해 동일한 쿼리를 실행할 수 있습니까?

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

: 나는 위의 양식을하기 전에 명령을 추가 그래서

MiffTheFox의에서 아이디어와 톰의 답장

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

응답 :

나는 여기에서 중요한 부분을 복사 그러나 벽은 검은 색으로 유지됩니다. 그것은 M5s로 가득해야합니다.

처음 나타나는 문제 질문 : 왜 작동하지 않습니까? 왜 벽은 검은 채로 남아 있습니까?

는하여 makeRequest 코드를 확인하려면 상단하고 Ctrl + U의 URL을 참조
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; 
    } 
} 

하십시오 톰

에 의해 물었다.

+0

질문을 다시해야한다고 생각합니다. 정확히 당신이 성취하고자하는 것은 무엇입니까? – rifferte

+0

rifferte : 입력이있는 양식이 있습니다. 그 값은 "안녕하세요"입니다. 페이지가 값으로로드 될 때마다 실행하고 싶습니다. –

+0

makeRequest (1)가 무엇인지 보여줄 수 있습니까? – Tom

답변

1

음,

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

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

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

} 
</script> 

또한 본문 요소 내부의 부하 특성에 놈의, 당신은 당신의 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> 
+0

올바른 방법입니다. –

+0

대단히 감사합니다. 나는 그것을 마침내 작동하게했다 :) –

1

먼저 양식에 ID를 추가 한 다음 양식을 제출하는 onLoad 핸들러를 추가하십시오.

<body onload="myForm.submit();"> 
<form id="myForm" name="input" action="form_action.asp" method="get"> 
... 
+1

은 계속해서 계속해서 제출하지 않겠습니까? –

+0

"myForm"이라는 ID를 가진 요소를 "myForm"으로 언급하는 것은 특히 좋은 습관은 아니며 실수가 아니라면 IE에서만 작동합니다. 대신 document.getElementById ('myform')를 사용해야합니다. 그러나 그렇지 않으면, 나는 이것이 합리적이라고 생각합니다. – MatrixFrog

+0

JacobM : 아니요, "onload"이벤트는 페이지가로드 될 때 시작됩니다. – MatrixFrog

1

회원님이 달성하기 위해 노력하고 있지만, 확실히

$ (문서) .ready (함수() { $ ("#의 submitButton"). 클릭을 할 jQuery를 사용할 수 있는지 확인(); });

이 문제는 문서를 처음 제출할 때만 발생하는 문제입니다. 서버 측에서이 정보를 추적하고 처음 제출 코드를 제거해야합니다.

더 나은 방법은 표시하려는 초기 상태가 표시되도록 서버 측에서 HTML을 작성하는 것입니다. 많은 웹 응용 프로그램은 일종의 검색어 (예 : 검색)를 제출하지만 양식 아래의 초기 샘플 결과로 시작하는 양식이 있습니다. 이것은 "제출 전"이 아니라로드하기 전에 서버 측에서 생성됩니다.

관련 문제