양식의 추가 입력 필드에 JS 함수를 사용하고 싶습니다. 예를 들어, LastName과 LastNameLabel 등을 원합니다. 모든 필드가 동일한 효과를 낼 수 있도록 Aaa와 AaaLabel 쌍을 찾기 위해 함수를 조정할 수 있기를 기대합니다. 내 코드는 아래와 같습니다. 감사!JS 함수를보다 동적으로 만드는 데 도움이 필요합니다.
업데이트 : 이제 요소 ID의 이름을 소문자와 대문자 사이에 공백으로 표시하는 'Original Value'를 얻으려고합니다. 예를 들어, Element ID가 LastName 인 경우 innerHTML을 "성"으로 지정합니다. 모든 도움에 감사드립니다 !!
<script type="text/javascript">
function LabelOnClick(el) { var associatedFieldId = el.getAttribute('for');
if (associatedFieldId)
document.getElementById(associatedFieldId).focus();
}
function FieldOnFocus(el) { document.getElementById(el.id + 'Label').className='FieldFocus';
}
function FieldOnKeyPress(el) { if (event.keyCode!=9 && event.keyCode!=8) { document.getElementById(el.id + 'Label').innerHTML='';
}
}
function FieldOnKeyDown(el) { el.style.width = Math.max(30,el.value.length*10)+'px';
}
function FieldOnKeyUp(el) { el.value=el.value.substring(0,1).toUpperCase()+el.value.substring(1,el.value.length);
if (el.value=='') document.getElementById(el.id + 'Label').innerHTML='Original Value';
}
function FieldOnBlur(el) { if (el.value=='') { document.getElementById(el.id + 'Label').className='FieldBlur';
document.getElementById(el.id + 'Label').innerHTML='Original Value';
}
}
</script>
<style>
.InputField { border: 1px dotted lightgray;
border-bottom:1px solid black;
min-width: 30px;
padding: 5px;
font-family:tahoma, arial, sans-serif;
font-size: 14px;
}
.FieldBlur { color: gray;
position: absolute;
padding: 6px;
padding-left: 8px;
padding-top: 8px;
font-family: tahoma, arial, sans-serif;
font-size: 14px;
}
.FieldFocus { color: lightgray;
position: absolute;
padding: 6px;
padding-left: 8px;
padding-top: 8px;
font-family: tahoma, arial, sans-serif;
font-size: 14px;
}
.FieldInput { color: black;
position: absolute;
padding: 6px;
padding-left: 8px;
padding-top: 8px;
font-family: tahoma, arial, sans-serif;
font-size: 14px;
}
</style>
<label id="FirstNameLabel" for="FirstName" class="FieldBlur"
onclick="LabelOnClick(this)">First Name
</label>
<input id="FirstName" class="InputField" type="text" name="FirstName" maxlength="25"
onfocus="FieldOnFocus(this)"
onkeypress="FieldOnKeyPress(this)"
onkeydown="FieldOnKeyDown(this)"
onkeyup="FieldOnKeyUp(this)"
onblur="FieldOnBlur(this)"/>
</body>
클릭 된 요소에 대한 참조를 전달하기 위해 이미'FieldOnKeyUp()'을 코딩 한 방법은 아마도 다른 기능에서해야 할 일일 것입니다. – nnnnnn