>  기사  >  웹 프론트엔드  >  사용자가 page_javascript 기술의 데이터를 수정했는지 확인하는 방법

사용자가 page_javascript 기술의 데이터를 수정했는지 확인하는 방법

WBOY
WBOY원래의
2016-05-16 19:00:241614검색

원인:
프로그램의 수정 모듈을 구현할 때 사용자가 페이지 측에서 데이터를 수정했는지 여부를 확인하여 수정된 데이터를 적시에 저장하도록 사용자에게 상기시켜야 합니다.

구현 요구사항:
사용자가 입력 내용을 수정했는지 확인해야 합니다. 입력 내용에서 체크박스, 텍스트, 라디오 등을 확인할 수 있어야 합니다. 수정 여부를 결정하기 위해 클라이언트 측에서 제출을 생성할 수 없습니다. 또한 IE와 Firefox 환경을 모두 만족해야 합니다. 또한 마스터 및 콘텐츠 페이지 사용을 지원해야 합니다.

해결책
처리 아이디어: 페이지가 로드될 때 모든 입력의 값이나 상태를 기록합니다. 사용자가 수정 작업을 수행할 때 즉시 제어 상태를 조정해야 하는 경우 데이터 영역 div onkeypress 이벤트에서 데이터 변경 여부를 확인하는 함수를 호출하고 해당 컨트롤의 상태를 설정합니다(ha_setch() 사용). 제출되거나 사용자가 검사 프로세스를 수동으로 제어하는 ​​경우 해당 작업 이벤트에서 검사 데이터가 호출됩니다(예: 제출을 제어하려면 버튼의 onclick()에서 ha_checkin()을 사용합니다).

구현 코드는 다음과 같습니다
var ha_last=new Array;//모든 초기값을 저장할 전역 빈 객체를 정의합니다.
function ha_get()//초기값 읽기
{ var ha_input = document.getElementsByTagName("input")
for (var i=0;i {
if (ha_input[i].type=="password"){ ha_last.push(ha_input[i].value);}//기본 페이지에서는 유형 및 객체 속성 값을 설정해야 합니다
if (ha_input [i].type=="radio") {ha_last.push(ha_input[i].checked);}//검사 범위가 정확한지 확인하기 위해
}
}
창 .onload=ha_get ;//초기값을 읽는 함수 바인딩
function ha_checkin()//새 입력값이 초기값과 같은지 확인합니다. 판정 결과를 반환합니다. true는 수정이 발생하지 않았음을 의미하고 false는 수정이 있음을 의미합니다.
{ var ha_now=new 배열;
var ha_input = document.getElementsByTagName("input")
for (var i=0;i{
if (ha_input[i].type=="password"){ ha_now.push(ha_input[i].value);}//기본 페이지에서는 유형 및 객체 속성 값을 설정해야 합니다.
if (ha_input[i].type=="radio") {ha_now.push(ha_input[i].checked);}//또한 ha_get()에서 확인한 태그와 일치하는지 확인하세요
}
if (ha_now.toString()==ha_last.toString())//수정 없음
{return true;}
else//Modification
{return false;}
}
함수 ha_setch(){//해당 컨트롤 상태 설정
if (ha_checkin())//변경 없음
  //컨트롤의 표시 및 기능 상태 변경
else//있습니다 변경
//컨트롤의 디스플레이 및 기능 상태 변경
}

참고: 위의 솔루션은 IE6 및 firefox3.0.2에서만 테스트되고 통과되었습니다. 다른 브라우저에서는 테스트되지 않았습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.