用户输入输入时符号后的自动空格

时间:2012-03-21 06:27:02

标签: javascript html

我输入[type = text],用户只能键入alpha,space和逗号。 我需要在“输入”js中的每个逗号之后放置一个空格。 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

例如使用JQuery:

$("#landing-search-input").keyup(function(event) {
    if (event.keyCode == 188) {
        $(this).val($(this).val() + " ");
    }
});

$("#landing-search-input").keyup(function(event) {
    var inputValue = $(this).val();
    if (inputValue.substr(-1) == ",") {
        $(this).val(inputValue + " ");
    }
});

答案 1 :(得分:1)

如果你想这样做,那么

  1. 当插入符号不在输入文本的末尾时,在正确的位置添加空格
  2. 在插入后的空格后立即正确放置插入符号
  3. ...您需要以下内容,这些内容适用于所有主流浏览器,包括IE 6。

    演示:http://jsfiddle.net/Y9c6G/

    代码:

    function insertTextAtCursor(el, text) {
        var val = el.value, endIndex, range;
        if (typeof el.selectionStart != "undefined" 
                && typeof el.selectionEnd != "undefined") {
            endIndex = el.selectionEnd;
            el.value = val.slice(0, endIndex) + text + val.slice(endIndex);
            el.selectionStart = el.selectionEnd = endIndex + text.length;
        } else if (typeof document.selection != "undefined"
                 && typeof document.selection.createRange != "undefined") {
            el.focus();
            range = document.selection.createRange();
            range.collapse(false);
            range.text = text;
            range.select();
        }
    }
    
    document.getElementById("some_input").onkeypress = function(evt) {
        evt = evt || window.event;
        var charCode = typeof evt.which == "number" ? evt.which : evt.keyCode;
        if (String.fromCharCode(charCode) == ",") {
            insertTextAtCursor(this, ", ");
            return false;
        }
    };