Подтвердить что ты не робот

Как я могу принудительно вводить ввод в верхний регистр в текстовом поле ASP.NET?

Я пишу приложение ASP.NET. У меня есть текстовое поле на веб-форме, и я хочу заставить все типы пользователей использовать верхний регистр. Я бы хотел сделать это на передней панели. Следует также отметить, что в этом текстовом поле есть элемент управления проверкой, поэтому я хочу убедиться, что решение не мешает проверке ASP.NET.

Разъяснение: Похоже, что текстовое преобразование CSS делает ввод пользователя в верхнем регистре. Однако, под капотом, он все еще имеет более низкий регистр, так как контроль проверки не выполняется. Вы видите, мой контроль проверки проверяет, введен ли действительный код состояния, однако регулярное выражение, которое я использую, работает только с прописными буквами.

4b9b3361

Ответ 1

Почему бы не использовать комбинацию CSS и бэкэнд? Использование:

style='text-transform:uppercase' 

в TextBox, и в вашем коде используйте:

Textbox.Value.ToUpper();

Вы также можете легко изменить свое регулярное выражение на валидаторе, чтобы использовать строчные и прописные буквы. Это, вероятно, более легкое решение, чем наложение на них прописных букв.

Ответ 2

Используйте стиль CSS в текстовом поле. Ваш CSS должен быть примерно таким:

.uppercase
{
    text-transform: uppercase;
}

<asp:TextBox ID="TextBox1" runat="server" Text="" CssClass="uppercase"></asp:TextBox>;

Ответ 3

Хорошо, после тестирования, это лучшее, более чистое решение.

$('#FirstName').bind('keyup', function () {

    // Get the current value of the contents within the text box
    var val = $('#FirstName').val().toUpperCase();

    // Reset the current value to the Upper Case Value
    $('#FirstName').val(val);

});

Ответ 4

Вы можете перехватить события нажатия клавиш, отменить строчные буквы и добавить их в верхние регистры на вход:

window.onload = function () {
    var input = document.getElementById("test");

    input.onkeypress = function () {
        // So that things work both on Firefox and Internet Explorer.
        var evt = arguments[0] || event;
        var char = String.fromCharCode(evt.which || evt.keyCode);

        // Is it a lowercase character?
        if (/[a-z]/.test(char)) {
            // Append its uppercase version
            input.value += char.toUpperCase();

            // Cancel the original event
            evt.cancelBubble = true;
            return false;
        }
    }
};

Это работает как в Firefox, так и в Internet Explorer. Вы можете увидеть это в действии здесь.

Ответ 5

**I would do like:
<asp:TextBox ID="txtName" onkeyup="this.value=this.value.toUpperCase()" runat="server"></asp:TextBox>**

Ответ 6

<!-- Script by hscripts.com -->
<script language=javascript>
    function upper(ustr)
    {
        var str=ustr.value;
        ustr.value=str.toUpperCase();
    }

    function lower(ustr)
    {
        var str=ustr.value;
        ustr.value=str.toLowerCase();
    }
</script>

<form>
    Type Lower-case Letters<textarea name="address" onkeyup="upper(this)"></textarea>
</form>

<form>
    Type Upper-case Letters<textarea name="address" onkeyup="lower(this)"></textarea>
</form>

Ответ 7

Я только что сделал что-то подобное сегодня. Вот модифицированная версия:

<asp:TextBox ID="txtInput" runat="server"></asp:TextBox>
<script type="text/javascript">
    function setFormat() {
        var inp = document.getElementById('ctl00_MainContent_txtInput');
        var x = inp.value;
        inp.value = x.toUpperCase();
    }

    var inp = document.getElementById('ctl00_MainContent_txtInput');
    inp.onblur = function(evt) {
        setFormat();
    };
</script>

В принципе, script присоединяет событие, которое срабатывает, когда текстовое поле теряет фокус.

Ответ 8

Я бы сделал это с помощью jQuery.

<script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("#txt").keydown(function(e) {
            if (e.keyCode >= 65 & e.keyCode <= 90) {
                val1 = $("#txt").val();
                $("#txt").val(val1 + String.fromCharCode(e.keyCode));
                return false;
            }
        });
    });
</script>

У вас должна быть библиотека jQuery в папке /script.

Ответ 9

Я сделал некоторый анализ этой проблемы в четырех популярных версиях браузера.

  • тег стиля просто отображает символы в верхнем регистре, но контрольное значение остается в нижнем регистре
  • функциональность нажатия клавиш с помощью приведенного выше кода char немного беспокоит, как в firefox chrome и safari, отключает функцию Ctrl + V в элементе управления.
  • Другая проблема с использованием символьного уровня в верхнем регистре также не переводит всю строку в верхний регистр.
  • Ответ, который я нашел, заключается в том, чтобы реализовать это на клавиатуре в сочетании с тегом стиля.

    <-- form name="frmTest" -->
    <-- input type="text" size=100 class="ucasetext" name="textBoxUCase" id="textBoxUCase" -->
    <-- /form -->
    
    window.onload = function() {
        var input = document.frmTest.textBoxUCase;
        input.onkeyup = function() {
            input.value = input.value.toUpperCase();
        }
    };
    

Ответ 11

 style='text-transform:uppercase'

Ответ 12

CSS может помочь здесь.

style="text-transform: uppercase";"

Помогает ли это?

Ответ 13

Используйте текстовое преобразование CSS для front-end, а затем используйте метод toUpper на вашей стороне на стороне сервера, прежде чем вы выполните проверку.

Ответ 15

Я использую простой встроенный оператор

<asp:TextBox ID="txtLocatorName" runat="server"
 style="text-transform:uppercase" CssClass="textbox"  
 TabIndex="1">
</asp:TextBox>

Если вы не хотите использовать классы css, вы можете просто использовать встроенный оператор стиля (это просто видимо сделать заглавные):)

На стороне сервера используйте

string UCstring = txtName.Text.ToUpper();

Ответ 16

text-transform CSS property specifies how to capitalize an element text. It can be used to make text appear in all-uppercase or all-lowercase

CssClass

Свойство WebControl.CssClass

вы можете узнать больше об этом - https://developer.mozilla.org/en/docs/Web/CSS/text-transform

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.cssclass(v=vs.110).aspx


используйте Style="text-transform: uppercase;" или CssClass="upper"

Ответ 17

JavaScript имеет функцию toUpperCase() для строки.

Итак, что-то в этом роде:

function makeUpperCase(this)
{
    this.value = this.value.toUpperCase();
}

Ответ 18

Я понимаю, что это немного поздно, но я не смог найти хороший ответ, который работал с ASP.NET AJAX, поэтому я исправил код выше:

function ToUpper() {
        // So that things work both on FF and IE
        var evt = arguments[0] || event;
        var char = String.fromCharCode(evt.which || evt.keyCode);

        // Is it a lowercase character?
        if (/[a-z]/.test(char)) {
            // convert to uppercase version
            if (evt.which) {
                evt.which = char.toUpperCase().charCodeAt(0);
            }
            else {
                evt.keyCode = char.toUpperCase().charCodeAt(0);
            }
        }

        return true;
    }

Используется так:

       <asp:TextBox ID="txtAddManager" onKeyPress="ToUpper()" runat="server" 
             Width="84px" Font-Names="Courier New"></asp:TextBox>

Ответ 19

  <telerik:RadTextBox ID="txtCityName" runat="server" MaxLength="50" Width="200px"
                            Style="text-transform: uppercase;">

Ответ 20

     $().ready(docReady);

     function docReady() {

            $("#myTextbox").focusout(uCaseMe);
     }

     function uCaseMe() {

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

            // Reset the current value to the Upper Case Value
            $(this).val(val);
        }

Это многоразовый подход. Любое количество текстовых полей может быть сделано таким образом, чтобы не называть их. Решение ширины страницы может быть достигнуто путем изменения селектора в docReady.

В моем примере используется потерянный фокус, вопрос не задавался по типу. Вы можете активировать изменения, если это важно в вашем сценарии.