文本字段中的数字应仅在用户单击文本框外后自动设置格式

Number in textfield should be autoformatted only after user clicks outside the textbox?

本文关键字:文本 格式 设置 单击 用户 字段 数字      更新时间:2023-09-26

我有个问题。基本上,在我的情况下,文本框中的数字是在我打字时自动设置格式的。我不想发生这种事。我想要的是,只有当用户点击文本框外时,数字才应该自动设置格式。

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

   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);
        }
    }
}

我真的希望这个问题能够得到解决。请

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

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