텍스트 영역을 사용자가 입력 할 수 있습니다. 텍스트 영역에 입력 할 수 있습니다. 시작은 소문자이지만 'T (토글)'버튼을 클릭하면 무엇을 할 수 있습니까? 이후 입력은 대문자로 바뀌며 이전 입력은 소문자로만 진행됩니다. 다시 사용자가 'T (토글 버튼)'을 클릭하면 그 이후에 어떤 문자가 입력되는지가 소문자로 표시됩니다. 나는 시도했지만 성공하지 못했습니다.버튼 클릭시 토글 케이스
<input type="button" name="toggleCase" id="toggleCase" value="T" style="width:40px;" onclick="javascript:changeCase(this);" />
<textarea tabindex="1" cols="39" rows="2" onkeydown="checkTxtCase(this);" name="titleText1"> </textarea>
JS : 어떤 제안이 이해된다
function checkTxtCase(elmObj) {
setCursorToTextEnd(elmObj.id);
var txtVal = elmObj.value;
var txtLen = txtVal.length;
prevSize = txtLen;
var txtLast = txtVal.substring(txtLen - 1, txtLen);
if (textCase == 'LOWER') {
elmObj.value = txtVal.substring(0, txtLen - 1) + txtLast.toLowerCase();
} else {
elmObj.value = txtVal.substring(0, txtLen - 1) + txtLast.toUpperCase();
}
return true;
}
function setCursorToTextEnd(textControlID) {
var text = document.getElementById(textControlID);
if (text != null && text.value.length > 0) {
if (text.createTextRange) {
var FieldRange = text.createTextRange();
FieldRange.moveStart('character', text.value.length);
FieldRange.collapse();
FieldRange.select();
} else if (text.setSelectionRange) {
var textLength = text.value.length;
text.setSelectionRange(textLength, textLength);
}
}
}
var textCase = 'UPPER';
var prevSize = 0;
function changeCase() {
document.getElementById('titleText1').focus();
textCase = (textCase == 'LOWER') ? 'UPPER' : 'LOWER';
}
.
내가 http://jsfiddle.net/KKX5G/ – Rosh
이 왜 그냥 자바 스크립트를 toUpperCase 기능 내장 사용 여기 시도 확인? – Benubird