如果在文本框中输入文本时前面有空格,则使字母输入大写

时间:2012-03-14 14:45:20

标签: javascript jquery

我希望用户在文本框中输入ALPHABET大小,如果前面有空格的话。

示例用户编写“test new”,因此“n”应该是一个大写,它会非常流畅,感觉用户按下了shift键

我认为我们可以在keydown事件(jquery)中做同样的事情

我尝试的代码是:

$('.name').live("keydown", function (e) {
  try {
    if ($('.name').val().length > 1) {
      if ($('.name').val().substring($('.name').val().length - 1) == " ") {
        // HERE can we do something like e.shift key etc to get desired result
      }
    }
  } catch (err) {
    alert(err);
  }
});

3 个答案:

答案 0 :(得分:6)

替代

​.name {
    text-transform:capitalize;
}

答案 1 :(得分:5)

尝试:

$('#foo').on('keyup', function () {
    $(this).val(function (i, val) {
        return val.replace(/(\s)(\S)/g, function ($0, $1, $2) {
          return $1 + $2.toUpperCase();
        });
    });
});​

演示:http://jsfiddle.net/qPSpK/2/

答案 2 :(得分:2)

我很惊讶@ AlexK的答案的清洁度,但如果你真的需要第一个单词小写(或者只是想要一些其他形式的无缝控制文本),试试这个jQuery:

$(function(){
    $("textarea").bind("keypress", function(e){              
        var cap = "";
        if(e.which >= 97 && e.which <= 122) {
            cap = String.fromCharCode(e.which).toUpperCase();
        }
        if( cap != "" ) {
            var text = $(this).val();
            if( text[text.length-1] == " ") {
                $(this).val(text+cap);
                return false;
            }
        }
    });        
});​

http://jsfiddle.net/dkyYr/1/

编辑:将switch语句更改为字符映射