일단 서버를 콜하는것은 최소한으로 줄이는 것이 좋습니다.
다음 코드를 참고하십시오.
title 객체의 maxlength를 50으로 잡았지만 한번 더 체크를 해 주고 있습니
다. IE의 경우 내부적으로 유니코드를 사용하기 때문에 한글이나 영문을 모
두 다 1글자로 처리합니다. 이런 경우 한글을 2바이트로 처리하는 기타 DB
나 프로그램들과 문제가 생길 수 있기 때문에(IE에서 한글 50문자는 실제
100바이트임) 제 경우는 글자수 카운트 함수를 따로 만들어서 사용하고 있습
니다.
<script>
function CheckByte(str)
{
var i;
var strLen;
var strByte;
strLen = str.length;
// IE4.0 이상
if(IEYES == 1)
{
for(i=0, strByte=0;i<strLen;i++)
{
if(str.charAt(i) >= ' ' && str.charAt(i) <= '~' )
strByte++;
else
strByte += 2;
}
return strByte;
}
// Netscape일 경우
else
{
return strLen;
}
}
function go_submit() {
if (CheckByte(document.myform.title.value) > 50) {
alert("제목이 50글자를 넘었습니다.");
return;
}
... ...
document.myform.submit();
}
</script>
... ...
<body>
<form method=post name=myform>
<input type=text name=title maxlength=50 size=50>
... ...
<input type=button value="저장" onclick="go_submit()">
</form>
: 안녕하세요.
:
: 제가 요즘 프로그램하면.. ㅡㅡ; 해결하지 못하는 문제에 직면해 있는데,
: 바로 이것입니다. 폼에서 글을 적은 후 서밋을 하게되면 PHP에서 자료검
: 증을 거치고, 적합하지 않으면 예전에는 그냥 BACK을 하면 되었지만, 지
: 금은 history(-1)하면 값은 하나도 남아 있지 않습니다.
:
: 이전에는 패스워드 폼값만 사라졌는데, 현재 익스플로러가 버젼 업되면서
: 부터는 모든 폼값이 남아 있지 않는군요.. 지금 현제 이 게시판 역시도..
: PHP에서 내용 체크후에 값들이 사라지는군요..( 다른 분들은 어떻게 처리
: 하나 해서 열심히 소스를 들여다 보았지만, 안데더군요.. ㅡㅡ;; ; )
:
: 그래서, 제가 찾은 방법은 자신이 자신에게 서밋해서.. 체크하고, 그대로
: 내려서 뿌려주는 것인데 말입니다. 이건 머리 아픕니다. 너무도 많은 변
: 수들이.. 쩝.
:
: 다른 분들은 세션에 넣는다, 버퍼 DB를 잡아서 넣었다가 히스토리백했을
: 때.. 데이터가 있으면 빼서 뿌려준다.. T^T;; 이건 더 말이 안되는 것같
: 습니다.
:
: 제가 생각하기로는 <form> <input> 테그에 옵션이 생기지 않았을까.? 합
: 니다. 문제를 만들었으면, 해결할 방법도 간구해 놓지 않았을까요.ㅡㅡ?
: MS는.. 모르져.. 쩝.. ( 저는 MS가 싫어요..~! )
:
: 혹시 아시는 분이나 문제를 해결할 기발한 아이디어라두..ㅡㅡ'' 공개하
: 기 싫으시면, 저에게만 멜루 귀뜸해주시면... .
: 감사하겠습니다. ^^--3월 10일이 첫째아들 경찬이의 생일입니다.
어제 선물로 레고블럭을 사다 줬습니다.
연년생 동생과 재미있게 놀았습니다.