2008-09-26 1 views
0

다소 큰 입력 폼 (수백 개의 필드 인벤토리 응용 프로그램)에 document.form.submit() 함수를 사용하고 있습니다. 사용자가 일정 시간 동안 유휴 상태가되어 입력 한 데이터를 저장하고자하는 경우이를 호출합니다. 이 페이지를 다시로드하면 (작업은 #이지만) 입력란에 입력 한 새 텍스트가 REQUEST에 전달되지 않으므로 DB에 넣지 않습니다. 왜 이런 일이 발생하는지 또는 내 코드가 함께 잘 작동하지 않는 근본적인 이유가 있습니까? (유휴 시간을 추적하기 위해 양식과 라이브러리를 표시하기 위해 EXTJS 표보기를 사용하고 있습니까?) 감사합니다. 로버트누군가를 로그 아웃하기 전에 데이터가 포함 된 양식을 제출하는 방법은 무엇입니까?

+0

좋아요. 양식 작업을 다른 페이지로 변경했는데 form.submit 함수를 호출하면 다른 페이지로 이동하는 대신 페이지가 계속 새로 고쳐집니다. 왜 이런 일이 일어날 지 아무도 몰라요? – Robert

+0

그런 다음 setTimeout 함수에서 내 form.submit을 가져 와서 (popover div를 표시 한 후 지연을 제거하기 위해) 작동했습니다! 이제 사용자를 로그 아웃할지 여부를 구별하는 방법을 알아야합니다. – Robert

답변

1

여기에 답을 넣으세요. 내가 찾은 것은 이것을하는 것이다. setTimeout ('frm.submit();', 2000); 페이지가 다시로드되었지만 양식을 제출하지 않았습니다. 내가 이런 짓을했을 때 : frm.submit(); 양식이 제출되고 데이터가 전달되었습니다. 왜 첫 번째 방법은 작동하지 않았는지 모르겠지만 그 사실을 알 필요가 없습니다.

+0

답변을 주셔서 감사합니다. 결과를 게시하기 전에 표시되지 않았습니다. – Robert

+0

나중에 첫 번째 방법이 작동하지 않는 이유는 setTimeout 내의 함수를 둘러싼 작은 따옴표 때문이라는 것을 알게되었습니다. 일단 frm.submit(); 주위에 두 번 qoutes 넣어 setTimeout 함수를 사용하여 일하고 있어요. – Robert

0

서버가 입력 값을 무시할 수도 있습니다. 서버의 페이지가 다음과 같이 표시된다고 가정 해보십시오.

<form action="/page.cgi"> 
    ... 
    <input name="Fieldx" value=""/> 
</form> 

나는 필드가 사라질 것이라고 생각합니다. 또는 서버 작업이 간접적으로이를 설정했을 수 있습니다. JSF에서 이런 식으로.

<input name="Fieldx" value="#{bean.nullProperty}"/> 

서버에있는 기능과 브라우저는 무엇입니까?

0

입력란이 포함되어 있는지 확인하기 위해 HTML 게시물 요청을 잡으려고합니다. 그렇다면 서버에 문제가 있습니다.

당신이 말한 것과 관련해서는 브라우저가 JavaScript DOM을 처리하는 방식에 충돌이 있기 때문입니다. 양식에 제출 버튼을 남겨두면 작동 할 수 있습니다.

0

submit 메서드 HTMLFormElement 개체는 사용자가 제출 단추를 클릭 한 것처럼 양식을 제출해야합니다. . 따라서 양식의 action 속성이 #으로 설정된 경우 양식 데이터를 동일한 페이지로 전송하기 때문에 페이지를 새로 고치는 것처럼 보일뿐입니다.

액션 속성을 다른 페이지로 설정하면 여전히 이상하게 작동합니다.

양식의 method 특성이 get 또는 post으로 설정되어 있습니까?

+0

방법은 POST입니다. – Robert

관련 문제