2011-10-13 66 views
1

我想修剪的价值(带领先和尾随空格),并在每个字大写首字母。当从元素中的用户离开(blur事件),如下Javascript jQuery带领先和尾随空格

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

JS代码段

$(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; 
    } 
} 

请明白为什么它不工作或可能有更好的方法

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 

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

你有几个错误trought代码

$(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/

+0

是的,有一些JS区分大小写的问题。谢谢。 –