ExtJs의 TextField 컨텐츠 길이 제한(중국어 전체 길이는 2개)

자세히 보기
extjs 버전: 3.3
ext의 TextField 자체는 길이를 가지고 검사하지만 문자의 길이에 따라 계산합니다. 한자나 전각 기호는 모두 하나의 길이만 계산합니다. 항목의 수요로 인해 두 개의 길이에 따라 계산해야 합니다. ext의 원본을 수정하여 수정할 수 있습니다. ext 원본 패키지의 TextField가 정의한 곳에서 getErrors 방법을 찾아 길이를 비교할 위치를 찾을 수 있습니다. 다음과 같습니다.
 
		if (value.length < this.minLength) {
			errors.push(String.format(this.minLengthText, this.minLength));
		}

		if (value.length > this.maxLength) {
			errors.push(String.format(this.maxLengthText, this.maxLength));
		}

다음과 같이 수정합니다.
	/**
	 *  , 2 
	*/
	var valueLength = 0;
        for (var i = 0; i < value.length; i++) {
            var c = value.charCodeAt(i);
            // , +1
            if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
                valueLength++;
            }else {
                valueLength += 2;
            }
        }
	if (valueLength < this.minLength) {
		errors.push(String.format(this.minLengthText, this.minLength));
	}

	if (valueLength > this.maxLength) {
		errors.push(String.format(this.maxLengthText, this.maxLength));
	}

좋은 웹페이지 즐겨찾기