只有在用户点击文本框外,文本字段中的数字才能自动生成?

时间:2015-07-03 14:17:26

标签: javascript jquery html jsp

我有问题。基本上,在我的情况下发生的事情是我输入的文本框中的数字是自动编码的。我不希望这种情况发生。我想要的是,只有当用户在文本框外部点击时,这些数字才能自动生成。

在我的输入标签中,我有:

   onkeyup="format(event, this);"

我的javascript函数是:

function format(e, obj) {
    if (e.keyCode == 36) {
        press1(obj);
    }

    if (e.keyCode == 13) {
        return false;
    }

    if ((e.keyCode <= 34) || (e.keyCode >= 46 && e.keyCode < 58) || (e.keyCode >= 96 && e.keyCode <= 105)) { // //alert(e.keyCode);

        obj.value = CommaFormatted(obj.value);
    } else {
        if (e && e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        } else {
            e.cancelBubble = true;
            e.returnValue = false;
        }
        return false;
    }

}

其中press1函数是:

function press1(textControlID) {

    var text = textControlID;
    if (text.getAttribute("maxlength") == text.value.length) {
        var FieldRange = text.createTextRange();
        FieldRange.moveStart('character', text.value.length);
        FieldRange.collapse();
        FieldRange.select();
        return true;
    }
    if (text != null && text.value.length > 0) {
        if (text.createTextRange) {
            var FieldRange = text.createTextRange();
            FieldRange.moveStart('character', text.value.length);
            FieldRange.collapse();
            FieldRange.select();
        } else if (text.setSelectionRange) {
            var textLength = text.value.length;
            text.setSelectionRange(textLength, textLength);
        }
    }
}

我真的希望这可以解决。请!

1 个答案:

答案 0 :(得分:0)

您可以将onkeyup更改为onblur,这是当控件失去焦点时被触发的事件 - 单击它。

每次按键都会触发onkeyup事件。