Как я могу принудительно ввести ввод в верхнем регистре в текстовом поле ASP.NET? - PullRequest
31 голосов
/ 14 октября 2008

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

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

Ответы [ 20 ]

2 голосов
/ 28 августа 2009

Я бы сделал это с помощью 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>

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

1 голос
/ 19 июня 2014

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

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

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

На стороне сервера

string UCstring = txtName.Text.ToUpper();
1 голос
/ 31 августа 2011

вот решение, которое сработало для меня.

http://plugins.jquery.com/project/bestupper

Вы должны получить JavaScript от http://plugins.jquery.com/files/jquery.bestupper.min.js.txt и все.

Работает как шарм!

1 голос
/ 14 октября 2008

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

style="text-transform: uppercase";"

это помогает?

1 голос
/ 14 октября 2008

Установить стиль для текстового поля как text-transform: uppercase ?

1 голос
/ 14 октября 2008

Используйте CSS преобразования текста для внешнего интерфейса, а затем используйте метод toUpper на вашей строковой стороне сервера перед проверкой.

0 голосов
/ 17 сентября 2014
     $().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.

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

0 голосов
/ 30 марта 2013
  <telerik:RadTextBox ID="txtCityName" runat="server" MaxLength="50" Width="200px"
                            Style="text-transform: uppercase;">
0 голосов
/ 14 октября 2008

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

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

function makeUpperCase(this)
{
    this.value = this.value.toUpperCase();
}
0 голосов
/ 12 мая 2010

Я понимаю, что уже немного поздно, но я не смог найти хороший ответ, который работал с 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>
...