JavaScript屏蔽文本输入,例如名称字段

时间:2013-12-30 06:52:17

标签: javascript jquery

我已经查看了许多用于屏蔽html输入的插件,这些插件似乎解决了有关数字的问题,例如数量,日期和标识号,还没有看到任何现成的文本字段解决方案。假设我有“第一个”和“姓氏”输入,我自动想要屏蔽,以便格式自动显示以大写字母开头的每个单词。

john = Joen

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用onkeyup

Demo

<强> HTML:

<input id='first' onkeyup='mask("first");'>
<input id='last' onkeyup='mask("last");'>

<强> JavaScript的:

String.prototype.toTitleCase = function () {
    return this.replace(/\w\S*/g, function (txt) {
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
};

function mask(target) {
    var elem = document.getElementById(target);
    elem.value = elem.value.toTitleCase();
}

答案 1 :(得分:1)

给出以下HTML:

<input id="myText" type="text"/>

您可以使用JQuery的keyup函数:

$("#myText").keyup(function(e) {
  var previousKey = this.value.substring(this.value.length-2,this.value.length-1);
  //check if previous key is a space, or for the first letter and if it is a valid letter
  if ((previousKey == " " || this.value.length == 1) && (e.which >= 65 && e.which <= 90)) {
      var newVal = this.value.substring(0, this.value.length-1);        
      this.value =newVal + String.fromCharCode(e.keyCode);
  }
});

See demo here