컬럼 활용
validator 컬럼 옵션
QCELL은 input
, textarea
, number
, 타입의 컬럼에 대해 **유효성 검사(Validator)**를 설정할 수 있는 기능을 제공합니다.
Validator는 사용자가 값을 입력했을 때, 해당 값의 유효성을 검사하여 적절한 처리를 수행합니다.
Validator의 동작 방식
1. 유효성 검사
▪️사용자가 값을 입력하거나 수정하면, 지정된 validator 콜백 함수가 실행됩니다.
▪️Validator는 입력값이 유효한지 검사한 뒤, true 또는 false를 반환합니다.
2. 검사 결과에 따른 처리
▪️true 반환: 값이 유효한 경우, 입력값이 화면에 반영되며 관련 이벤트(valuechanged 등)가 정상적으로 실행됩니다.
▪️false 반환: 값이 유효하지 않은 경우, 입력값이 반영되지 않고 입력이 취소됩니다.
사용 예시:
Validator로 값의 차이를 제한
수를 입력할 때, 이전 값과 새 값의 차이가 5를 초과하지 않도록 제한하는 Validator를 설정할 수 있습니다.
JS
{title: ['기업', '숫자 조건(값의 차이가 5이상 또는 5이하면 X)'], type: "number", options: {validator: numbercolumn}},
function numbercolumn(nRow, nCol, value){
var gap = 0;
console.log(nRow + ' ' + nCol + ' ' + value);
gap = Math.abs(qcell.getCellData(nRow, nCol) - value);
if (gap >= 5) {
alert('5이상 차이날 수 없습니다.');
return false;
} else
return true;
}
결과:
값의 차이가 5 미만인 경우: 입력값이 정상적으로 반영됩니다.값의 차이가 5 이상인 경우: "변경된 값이 이전 값과 5 이상 차이날 수 없습니다."라는 경고 메시지가 표시되고 입력값이 반영되지 않습니다.
리턴값이 true이면 valuechanged 이벤트를 비롯하여 정상적인 흐름으로 동작하고 false인 경우 반영하지 않고 종료합니다.
아래 예제에서 숫자 조건(값의 차이가 5이상 또는 5이하면 X) 외에 최대 글자 수 제한(10)과 금지된 단어 조건("금지어") 컬럼에 대해서도 입력해 보시길 바랍니다.