Nice programing

Firefox는 다시로드 할 때 양식 데이터를 유지합니다.

nicepro 2021. 1. 6. 20:50
반응형

Firefox는 다시로드 할 때 양식 데이터를 유지합니다.


사용자가 다시로드 할 때 입력 한 데이터를 유지하는 Firefox의 기능에 큰 문제가 F5있습니다. Ctrl+를 사용 F5하면 양식이 지워지고 이것은 좋습니다. 내 문제는 내 모든 사용자가 이것이 입력 정리를 강제로 수행해야하는 작업이라는 것을 알지 못한다는 것입니다. html 또는 응답 헤더에 Firefox에 데이터를 양식에 보관하지 않도록 지시하는 방법이 있습니까?


autocomplete="off"입력에 추가 하면 문제가 해결됩니다.

<input type="text" autocomplete="off">

모든 입력 및 텍스트 영역에서이 문제를 해결하는 jQuery

$('input,textarea').attr('autocomplete', 'off');

모든 입력을 거치는 대신 다음과 같이 양식 요소에 속성을 추가 할 수도 있습니다.

<form method="post" autocomplete="off">...</form>

그러나 domReady에서 위에서 언급 한 방법은 나를 위해 작동하지 않았습니다 ...


더 쉽고 빠른 방법은

$('input,textarea').attr('autocomplete', 'off');

위의 단축 된 솔루션을 시도했지만 내 페이지에서 선택 상자의 값을 지우지 않았습니다.

나는 그것을 약간 수정했고 이제 페이지의 모든 입력 유형이 유형에 관계없이 지워졌습니다.

var allInputs = $(":input");
$(allInputs).attr('autocomplete', 'off');

그래서 이것을 onload로 실행하기 위해 ready () 메소드에 넣습니다.

$(document).ready(function () {
    var allInputs = $(":input");
    $(allInputs).attr('autocomplete', 'off');
});

/*reset form elements (firefox saves it)*/

function resetElements()
{
     var inputs = document.querySelectorAll('input[type=text]');
     //you get the idea.....you can retrieve all inputs by tag name input
     for(var i = 0; i < inputs.length; i++) {
         document.getElementsByTagName('input')[i].value = "";
     }
     var textareas = document.getElementsByTagName('textarea');
     for(var i = 0; i < textareas.length; i++) {
         document.getElementsByTagName('textarea')[i].value = "";
     }
}

이 함수를 onload로 호출하십시오.


브라우저의 자동 완성 기능을 유지하려면 (다른 유효한 답변 참조) 이름 속성을 양식에 추가하고 임의의 값을 지정하십시오. 그것은 나를 위해 일했습니다.

<form id="my-form" name="<random-hash>">
...
</form>

나에게 유일한 해결책은

document.forms[0].reset();

위의 @Marek의 주석에서 제안한대로 페이지의 초기에 문서가 준비되기 전에-훌륭하지는 않지만 저에게 효과적이었습니다 (jQuery, JS 또는 HTML을 통한 자동 완성 속성 메서드는 결국 저를 위해 수정하지 않았습니다)

참조 URL : https://stackoverflow.com/questions/7377301/firefox-keeps-form-data-on-reload

반응형