인라인 이벤트 처리기를 사용하는 자바 스크립트 함수를보다 현대적인 접근 방식으로 변경하려고합니다. 추악한 이벤트 처리기를 실제 HTML 마크 업에서 제거하고 모듈화 된 외부 자바 스크립트 파일에 넣고 싶습니다. 여기 내 HTML 코드에서이 함수 호출을 이동하는 방법
잘 멀리 기능이 무엇을 달성 할 싶습니다function formatPhone(obj) {
var numbers = obj.value.replace(/\D/g, ''),
char = {0:'(',3:') ',6:' - '};
obj.value = '';
for (var i = 0; i < numbers.length; i++) {
obj.value += (char[i]||'') + numbers[i];
}
}
을 우려로 일 현재 코드입니다 (이 같은 것입니다 :
var TargetEl = $('[name="pnumb"]');
TargetEl.on('blur', function() {
var UserInput = $('[name="pnumb"]').value.replace(/\D/g, ''),
char = {0:'(',3:') ',6:' - '};
TargetEl.value = '';
for (var i = 0; i < UserInput.length; i++) {
TargetEl.value += (char[i]||'') + numbers[i];
}
다음 테스트 케이스입니다
나의 주요 초점은 인라인 js 및 onblur = ""이벤트 처리기를 제거하는 것입니다. 타겟 엘이 흐려진 후에 전화 번호를 형식화하고 싶습니다. 마지막으로 간단히 클래스 o를 지정하여이 호출을 원합니다. F .pnumbFormat 말 ... (SO 당신의 도움에 미리 감사를!) 여기에
이 바이올린입니다 ...
그리고'formatPhone'을 참조로 .val에 직접 전달할 수있는 것으로 바꾸면됩니다. http://pastebin.com/DayRNzGv와'$ (this) .val (formatPhone) ' –
당신의 편집은'value' 앞에'formatPhone'에 다른 매개 변수를 추가하면'.val'에 직접 전달할 수 있습니다. http://jsfiddle.net/ae4fk/4/ –
@KevinB, 대단한 즉흥 연주. 원하는 답변을 추가하려는 유혹은 – Satpal