2011-10-13 9 views
1

값을 잘라내어 공백을 제거하고 모든 단어의 첫 글자를 자르고 싶습니다. 때 요소로부터 사용자 휴가 (blur 이벤트)Javascript jQuery 스트립 선행 및 후행 공백

$(document).ready(function(){ 
    var iptFirstName = $("#iptFirstName"); 
    iptFirstName.blur(validateForename); 
}); 


function validateForename(){ 
    var firstName= $("#iptFirstName").val; 
    //strip leading and trailing spaces 
    firstName= $.trim(firstName) 
    //change first letter in every word to uppercase 
    firstName= Capital(firstName); 
    //update input field whit new value 
    $("#iptFirstName").val(firstName); 
} 

function Capital(eleValue) { 
    var eleValue; 

    if (eleValue != "") { 
     var firstLetter = eleValue.substring(0, 1).touppercase(); 
     var restOfWord = eleValue.substring(1, eleValue.length).tolowercase(); 
     eleValue = firstLetter + restOfWord; 
     return eleValue; 
    } 
} 

더 나은 방법이 아마 작동하지 않는 이유를 이해하거나 바랍니다 코드의

<input id="iptFirstName" name="iptFirstName" type="text"/> 

JS 조각을 다음과 같이

HTML 입력 이 문제를 해결합니다.

답변

1
$(document).ready(function(){ 
    var iptFirstName = $("#iptFirstName"); 
    iptFirstName.blur(validateForename); 
}); 


function validateForename(){ 
    var firstName= $("#iptFirstName").val(); 
    //strip leading and trailing spaces 
    firstName= $.trim(firstName) 
    //change first letter in every word to uppercase 
    firstName= Capital(firstName); 
    //update input field whit new value 
    $("#iptFirstName").val(firstName); 
} 

function Capital(eleValue) { 
    var eleValue; 

    if (eleValue != "") { 
     var firstLetter = eleValue.substring(0, 1).toUpperCase(); 
     var restOfWord = eleValue.substring(1, eleValue.length).toLowerCase(); 
     eleValue = firstLetter + restOfWord; 
     return eleValue; 
    } 
} 

var firstName= $("#iptFirstName").val; 

var firstName= $("#iptFirstName").val(); 

touppercase 

toUpperCase 

tolowercase 

,691

에, 이것은 단지 몇 가지 변경을 완료, 일을해야 시도
toLowerCase 
1

이 그것을 할 것입니다 -

$(document).ready(function() { 
    var iptFirstName = $("#iptFirstName"); 
    iptFirstName.blur(function() { 
     $(this).val(function() { 
      return $.trim($(this).val()).replace(/(^[a-z]| [a-z])/g, function($0) { 
       return $0.toUpperCase(); 
      }) 
     }) 
    }); 
}); 

데모 - http://jsfiddle.net/ipr101/QvATH/1

+0

대단히 고맙습니다. 첫 번째 글자 만 대문자로 표기했지만, 다른 단어가 있으면 그 글자는 대문자가 아닙니다. –

+0

죄송합니다 - 아마도 조금 늦었지만 답변이 업데이트되었습니다. – ipr101

+0

고마워 형제 님, 저는 이것을 좋은 모범으로 보겠습니다. 엄지 손가락으로 –

1

당신이 시도 할 수이 $.trim(firstName).replace(/^([a-z])|\s+([a-z])/g, function ($1) {return $1.toUpperCase();})

0

당신했다 몇 가지 오류 코드

$(document).ready(function(){ 
    $("#iptFirstName").blur(validateForename); 
}); 


function validateForename(){ 
    var firstName= $("#iptFirstName").val(); 
    //strip leading and trailing spaces 
    firstName= $.trim(firstName); 
    //change first letter in every word to uppercase 
    firstName= Capital(firstName);  
    //update input field whit new value 
    $("#iptFirstName").val(firstName); 
} 

function Capital(eleValue) { 
    if (eleValue != "") { 
     var firstLetter = eleValue.substring(0, 1).toUpperCase(); 
     var restOfWord = eleValue.substring(1, eleValue.length).toLowerCase(); 
     eleValue = firstLetter + restOfWord; 
    } 
    return eleValue;  
} 

http://jsfiddle.net/b3XhL/

을 trought
+0

예, 대소 문자를 구분하는 일부 문제가있었습니다. 감사. –

관련 문제