.mask用.toUpperCase()为Postcodes

时间:2014-12-23 23:20:21

标签: jquery jquery-ui

我想使用以下.mask

$(document).ready(function() {
    $('#postcode').mask('a9a 9a9');

});

但是在每一个Key的力量上,小写字母都是大写的,但也允许输入小写字母(我并不只是想将掩码的定义设置为大写),这就是我的意思到目前为止尝试没有成功(它有点工作,但没有保持光标位置)

$("#postcode").keyup(function (e) {

            var this2 = $('#postcode').val().toUpperCase();

             $('#postcode').val(this2);

         });

3 个答案:

答案 0 :(得分:1)

变量this已经在keyup事件的范围内定义,并且在分配时可能会导致您的问题。此版本保留光标位置。

jsFiddle上的工作版here

$("#postcode").keyup(function () {

    var ucase = $(this).val().toUpperCase()
    $(this).val(ucase);

 });

答案 1 :(得分:1)

我找到了一个解决方法,将其添加到文本框中:

style="text-transform: uppercase" 

答案 2 :(得分:1)

我认为这是更好的解决方案:

$(".editor-template__value").keyup(function (e) {
     var start = e.target.selectionStart;
     e.target.value = e.target.value.toUpperCase();
     e.target.selectionStart = e.target.selectionEnd = start;
});

您的文字将更改为大写,光标位置不会改变。