我有一個輸入字段,用戶將填寫,我想在輸入時自動大寫每個單詞的首字母。但是,如果他們手動刪除大寫字母並將其替換爲小寫字母,我希望保持原樣(基本上大寫字母是我們推薦的,但不是必需的)。我在執行某些操作時會遇到麻煩,這些操作會留下他們手動輸入的字母,而不會更改它們。在句子中大寫首字母大寫,手工替換除外
這裏是我的代碼以及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