2017-04-05 1 views
0

여기에 문제가 있습니다. 방금 Yii2으로 배우기 시작했고, 내 입력 양식 (이름과 성)이 first letters 대문자 여야합니다. JS를 사용하여이 작업을 수행하고 있지만 어떻게 든 내 코드가 작동하지 않으며 결과가 인쇄되지 않습니다. 누군가 내가이 문제를 해결하고 내가 뭘 잘못하고 있는지 말해 줄 수 있을까?JavaScript의 첫 글자를 대문자로 사용하십시오.

function entryForm(name, surname) { 
this.name = $(name); 
this.surname = $(surname); 
var self = this; 

/* 
* Capitalizes first letter of users entered name and surname 
* 
* @param string input 
*/ 
this.capitalizeName = function(input) { 
var name = input.val(); 
name = name.toLowerCase().replace(/(^|\s)[a-z]/g, function(letter) { 
    return letter.toUpperCase(); 
}) 
input.val(name); 
} 
var entryForm = new entryForm('#employee-name', '#employee-surname'); 

$(document).ready(function() { 
/* 
* Executes named function 
*/ 
    $('#employee-name, #employee-surname').change(function() { 
     entryForm.capitalizeName($(this)); 
    }) 
}) 
} 
+0

당신은 http://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript – Bizley

+0

마에서 솔루션을 사용할 수 있습니다 대문자로 표시된 텍스트를 표시해야하거나 필요하지 않습니다 (DB에 저장된 방식으로 충분합니다). – gmc

+0

@gmc 대문자로 입력 된 이름을 자동으로 표시해야합니다. 예, 규칙을 추가하여 모델에서이 작업을 수행 할 수 있지만 자동 바꾸기 대신 "만들기"버튼을 클릭 한 후 문자를 바꿉니다. – user7435747

답변

2

나는 내가 그것을 작동하게 거라고 생각 몇 조정을했던 :

먼저, 대문자로 시작하여 JS '클래스'의 이름을

여기 내 코드입니다. 이 변수 선언 var entryForm = new entryForm(은 'class'의 이전 선언을 동일한 이름으로 음영 처리합니다.

둘째, $(document).ready 함수를 클래스 외부에 배치했습니다.

function EntryForm(name, surname) { 
    this.name = $(name); 
    this.surname = $(surname); 
    var self = this; 

    /* 
    * Capitalizes first letter of users entered name and surname 
    * 
    * @param string input 
    */ 
    this.capitalizeName = function(input) { 
     var name = input.val(); 
     name = name.toLowerCase().replace(/(^|\s)[a-z]/g, function(letter) { 
      return letter.toUpperCase(); 
     }) 
     input.val(name); 
    } 
} 

$(document).ready(function() { 
/* 
* Executes named function 
*/ 
    $('#employee-name, #employee-surname').change(function() { 
     var entryForm = new EntryForm('#employee-name', '#employee-surname'); 
     entryForm.capitalizeName($(this)); 
    }) 

}) 
관련 문제