我希望用户在文本框中输入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);
}
});
答案 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();
});
});
});
答案 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;
}
}
});
});
编辑:将switch语句更改为字符映射