我有一个输入字段,用户将填写,我想在输入时自动大写每个单词的首字母。但是,如果他们手动删除大写字母并将其替换为小写字母,我希望保持原样(基本上大写字母是我们推荐的,但不是必需的)。我在执行某些操作时会遇到麻烦,这些操作会留下他们手动输入的字母,而不会更改它们。在句子中大写首字母大写,手工替换除外
这里是我的代码以及Jsfiddle link。
<input class="capitalize" />
和JS:
lastClick = 0;
$(document).ready(function() {
$(".capitalize").keyup(function() {
var key = event.keyCode || event.charCode;
if (!(lastClick == 8 || lastClick == 46)) {
//checks if last click was delete or backspace
str = $(this).val();
//Replace first letter of each word with upper-case version.
$(this).val(str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}));
}
lastClick = key;
});
});
我还没有允许保留用户的手动校正,但因为它是你可以在的jsfiddle看到输入跳四周,无法正常工作。任何人都可以帮助我或推荐一个最佳的方式来做到这一点?谢谢。
在你的代码'event'是'undefined':( “资本”)。 '$ KEYUP(函数(事件){'http://jsfiddle.net/j3nGm/ – undefined 2013-03-12 00:47:04
这不是问题 - 我已经登录到控制台,并正确地注册了密钥#。问题是不幸的实际执行。 – user1436111 2013-03-12 01:05:06
+1好问题,并措辞良好。 – iOnline247 2013-03-15 03:11:33