javascript - 输入 : Initials 时进行表单验证/更正

标签 javascript jquery validation

我想自动更正姓名缩写字段,但我的知识有限,因此经过一个小时的反复试验,我所拥有的只是一个小脚本,仅将输入大写。我想要的是这样的:

  • a 变为 A。(大写并以点结尾)

  • AbC 变为 A.B.C.(大写并用点分隔)

  • A1BC_* 变为 A.B.C. (不允许使用其他字符,大写并用点分隔)

我拥有的是这样的:

    $(".hoofdletters").keyup(function(e)
    {
        $(".hoofdletters").val(($(".hoofdletters").val()).toUpperCase());
    });

更新

我不想浪费任何人的时间并打开一个新主题,所以我在这里尝试一下。我自己也尝试过自动将句子中的每个单词大写。一切正常,但由于某种原因空间被删除。它与 + '' 有关,如果我删除它,则不再起作用,如果我添加一个空格,我会在每个字母后得到一个空格,如果我这样保留,则不允许使用空格。

有人有什么建议吗?

$('.cap').bind('textchange', function (event, previousText) {
        var val = this.value;
        var newVal = '';
        val = val.split(' ');
        for(var c=0; c < val.length; c++) {
                 newVal += val[c].substring(0,1).toUpperCase() +
 val[c].substring(1,val[c].length) + ''; // It has something to do with this line
        }
        this.value = newVal;
    });​

最佳答案

Fiddle

$(document).ready(function() {
    $(".hoofdletters").focus(function() {
        var current = $(".hoofdletters").val();
        $(".hoofdletters").keyup(function(e) {
            var key = String.fromCharCode(e.keyCode);
            console.log(e.keyCode);
            if (key >= 'A' && key <= 'Z') {
                current += key + ".";
                this.value = current;
            }
            else if (e.keyCode == 8) {
                current = $(".hoofdletters").val();

            } else {
                current = "";
            }
        });
        $(".hoofdletters").blur(function() {
            var i = $(".hoofdletters").val();
            var last = i[i.length - 1];
            if (last != "." && i.length !== 0) {
                this.value += ".";
            }
        });
        $('.hoofdletters').keydown(function(e) {
            var i = $(".hoofdletters").val();
            if (e.keyCode == 8 && i.charAt(i.length - 1) == ".") {
                $(".hoofdletters").val(i.slice(0, -1));
                current = $(".hoofdletters").val();
            }
        })
    });
});​

关于javascript - 输入 : Initials 时进行表单验证/更正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180035/

相关文章:

javascript - HTML base href 和 A​​ngular APP_BASE_HREF 有什么区别?

javascript - Jquery如何选择具有值的选项

php - 如何在 codeigniter form_validation 类中允许空值或数值?

Scalaz 验证

javascript - jQuery if 条件为两个元素 mouseleave

javascript - 当服务中存在嵌套的 promise 关系时,AngularJS 表现异常

javascript - firefox 中的兼容性问题,动态,绝对表内容

ruby-on-rails - 将逗号转换为点作为分隔符

Javascript 方法不返回变量

javascript - 正则表达式捕获并替换 html 标签之外的文本模式