如何在文本框中强制使用字母大小写

时间:2011-06-23 10:13:15

标签: jquery css asp.net-mvc

在我的MVC应用程序中,我有一些名称字段,我想确保第一个字母是大写字母,其余的是小写字母。 没问题,你可以使用它; Html.TextBoxFor(model => model.Employee.Surname,new {style =“text-transform:capitalize;”}

这有两个问题; 1 /保存数据时,必须再次转换文本。 CSS不会转换基础数据,只会转换您在屏幕上看到的数据。 2 /我的老板第一次决定尝试我的屏幕,她习惯性地使用大写字母作为这种形式。所以她想要一个文本转换来强制从第二个字母开始的下部外壳。所以,如果她打字SMITH她想看史密斯。 我想知道如何做到这一点。如果每次按键都需要客户端事件来进行此转换。

2 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

$(function() {

    $(".field").blur(function() {
       $(this).val( $(this).val().substr(0,1).toUpperCase() + $(this).val().substr(1).toLowerCase());
    });

});

jsFiddle:http://jsfiddle.net/c5wCm/5/

答案 1 :(得分:-2)

试试这个javascript:

Html.TextBoxFor(model => model.Employee.Surname,new {@onkeypress =“caseL(this,event);”}

Html.TextBoxFor(model => model.Employee.Surname,new {@onkeypress =“caseS(this);”}

function caseL(obj, evt) {
    /*
    A lazy word capitaliser.
    e.g onKeypress="caseL(this,event);"
    */
    var iLen;
    var key;
    iLen = obj.value.length;
    if (navigator.appName == 'Netscape') {
        key = evt.charCode;
        if ((key == 0) && (evt.which == 13)) {
            //Enter key so suppress
            evt.preventDefault();
        }
    } else {
        key = window.event.keyCode;
        if (key == 13) {
            //Enter key so suppress
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
    }
    if ((iLen == 0) || (obj.value.charAt(iLen - 1) == " ") || (obj.value.charAt(iLen - 1) == "-")) {

        if ((key > 0x60) && (key < 0x7B)) {
            if (navigator.appName == 'Netscape') {
                key = key - 0x20;
                var newEvent = document.createEvent("KeyEvents")
                newEvent.initKeyEvent("keypress", true, true, document.defaultView, evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, String.fromCharCode(key).charCodeAt(0))
                evt.preventDefault()
                evt.target.dispatchEvent(newEvent)
            } else {
                window.event.keyCode = key - 0x20;
            }
        }
    }
}


function caseS(obj){
/* 
A strict word capitaliser.
e.g onKeypress="caseS(this);"
*/
var iLen;
iLen=obj.value.length;
key = window.event.keyCode;
if((iLen>0)&&(obj.value.charAt(iLen-1)!=" ")&&(obj.value.charAt(iLen-1)!="-")){
    if ((key > 0x40) && (key < 0x5B))
    window.event.keyCode = key+0x20;
    return true;
}
if ((iLen==0)||(obj.value.charAt(iLen-1)==" ")||(obj.value.charAt(iLen-1)=="-")){
    if ((key > 0x60) && (key < 0x7B))
    window.event.keyCode = key-0x20;
}
}