表单中遇到一些特殊的输入要求,要求字母全是大写或小写,例如车牌号等。不能强求用户都知道有CapsLock按键,或者Shift按键,为了更好的用户体验,输入框的控制不可以避免,下面是jquery实现。
$(“#id”).keypress(function(event) {
if ($(this).val().length < 5) {//限制输入字符串长度
var key = event.which;//event.keyCode
if (key >= 97 && key <= 122) {//找到输入是小写字母的ascII码的范围
event.preventDefault();//取消事件的默认行为
$(this).val($(this).val() + String.fromCharCode(key - 32));//转换
}
} else {
$(this).val($(this).val()); }//控制长度
});
上面在English输入发下可以正常完美运行,不过我们普遍用的是中文输入法,例如搜狗等。这时如果输入字符后,点击回车将字符以英文的方式输入到输入框中后,转换并没有发生。具体原因的实现细节,以后有时间详细了解下。在这里先给出备用的方法,聊胜于无。
将下面代码与上面的代码同事使用,在光标离开输入框之后触发blur事件,实现大小写转换。
$(jid).blur(function() {
$(this).val($(this).val().toUpperCase());
});
这样基本实现了文本框输入字符大小写转换的问题。