2013-06-21 3 views
1

양식을 사용하고 제출 버튼을 누르면 브라우저는 텍스트 입력 필드를 기억할 수 있습니다. 그러나 입력 유형 만 사용하고 양식이없고 버튼 동작이 onclick 이벤트 인 경우 브라우저가 수행합니다 사용자에 대한 입력 값을 캐시하지 않습니다.양식을 사용하지 않고 입력 내용이 기억됨

실제 제출을 사용하지 않고도 브라우저가 "양식"입력을 캐시하게 할 수있는 방법이 있습니까?

아래 샘플 코드는 내 페이지를 보여줍니다. 사용자가 검색을 클릭하면 javascript 함수가 호출되어 div "results"가 채워집니다. 브라우저를 제외한 모든 기능이 텍스트 입력을 캐시합니다.

<h2>Device Cleaner</h2> 
<p>Enter MAC Address of device to clean:</p> 
<input type="text" id="entry" name="macaddr" onkeypress="keyChecker(event)"> 
<button type="button" id="start" onclick="query()">Search</button> 
<div id="results"></div> 
</body> 
</html> 

답변

1

브라우저에 강제로이 정보를 저장할 수 없습니다. 저장하려는 입력이 상대적으로 짧으면 JavaScript를 사용하여이 정보로 쿠키를 저장할 수 있습니다. 그런 다음 나중에 페이지를 볼 때 해당 쿠키를 사용하여 입력 필드를 채울 수 있습니다. 그래도 민감한 정보를주의하십시오.

또는 AJAX 요청을 통해 사용자 입력을 사용자의 서버에 저장할 수 있습니다.

+0

주의 사항 : 일반적으로 localStorage/cookies/anything에는 암호 나 사회 보장 번호와 같은 중요한 정보를 저장하지 않는 것이 좋습니다. 즉,이 유형의 여러 양식에서 암호 필드는 기억되지 않는 유일한 필드입니다. – Katana314

+0

캐시 할 필드가 하나 밖에 없으므로이 경로를 사용했습니다. 내 경우에는 내부 웹 페이지이므로 보안에 신경 쓰지 않아 건물 외부에서 액세스 할 수 없습니다. – Aaron

0

브라우저 여전히 실제가 제출 한 사용하지 않고 "양식"입력을 캐시을하는 방법이 있나요?

과거에 일을하는 데 사용 무엇

번호

는 빈 페이지로 제출하지만, 그 모든 브라우저에서 더 이상 작동하지 않습니다.

0

자바 스크립트에서 비동기 요청을 사용하여 "results"div를 업데이트하여 페이지를 실제로 새로 고치거나 제출하지 않아도 결과를 간단하게 직접 표시 할 수 있습니까?

이것은 양식의 제출 조치를 가로 채고 검색을 수행 할 서버에 다른 엔드 포인트를 작성하는 것이고, 양식에 필요한 데이터를 리턴합니다. 내 답변에 설명하는 것이 조금 있지만 사람들이 일반적으로 더 나은 사용성을 위해 수행하는 것입니다. 당신은 "ajax form submit"에 대한 인터넷 검색으로 제공 할 수있는 튜토리얼보다 더 나은 튜토리얼을 찾을 수 있습니다.

+0

나는 이것을 시험해 보았는데, Firefox에서는 잘 작동하지만 chrome이나 IE에서는 잘 동작하지 않는다. – Aaron

+0

이것이 모든 브라우저에서 작동하지 않아야하는 특별한 이유는 없습니다. 자바 스크립트 디버깅 도구를 열어 어딘가에 어떤 문제가 있는지 정확하게 파악할 수 있습니다. (두 브라우저 중 최신 버전의 경우 F12를 눌러 디버거를여십시오.) – Katana314

+0

폼 데이터가 전송되고 응답이 검색되고 표시됩니다. **하지만 ** Firefox는 양식 데이터 만 캐시합니다. 다른 브라우저에는 자바 스크립트 오류가 없었습니다. – Aaron

관련 문제