在没有css的情况下将输入更改为大写,并且不会看到文本更改

时间:2014-09-16 15:09:59

标签: javascript jquery

我有以下问题,我需要将文本字段的输入更改为大写,但我不能使用css或通常的方式,你看到输入更改为大写。输入必须从头开始以大写字母出现,我正试图找到一种方法来做到这一点,但我需要一些帮助。 我已经完成了这个但是它没有用,我的想法是使用KeyboardEvent将非资本投入改为资本:

<s:textfield id="textfield1" />

$("#textfield1").keypress(function(event) {
    var isMinus = (event.keyCode >= 97) && (event.keyCode <= 122);
    if(isMinus) {

        var evento = document.createEvent("KeyboardEvent");
        evento.initKeyboardEvent("onkeypress", true, true, window, event.keyCode - 32, event.location, "", event.repeat, event.locale);
        event.currentTarget.dispatchEvent(evento);

    }

 });

任何提示?谢谢你的阅读!

2 个答案:

答案 0 :(得分:0)

您需要将其更改为id="textfield1"

此外,请在此处查看我的回答,了解有关该主题的更多信息:Allow text box only for letters using jQuery?

TL; DR - 除非用户做错了,否则不要更改输入,否则您将调整光标位置并使用户感到沮丧。

答案 1 :(得分:0)

你可以试试这个:

$("#textfield1").keypress(function(event) {

    var isMinus = (event.keyCode >= 97) && (event.keyCode <= 122);
    if (isMinus) {

        var letra = String.fromCharCode(event.keyCode-32);         

        this.value+= letra;

        event.preventDefault();
        event.stopPropagation();
    }

 });

示例:http://jsfiddle.net/kx23u3z1/

:)