Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ввод только букв / 20 сообщений из 20, страница 1 из 1
05.10.2006, 15:48
    #34035202
seeerg_23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
киньте, плз, регулярное выражение для ввода только букв (рус).
...
Рейтинг: 0 / 0
05.10.2006, 15:55
    #34035231
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
авторкиньте, плз, регулярное выражение для ввода только букв (рус).
уверен что тебе это надо!? я тут как раз копался с подобной задачей - Ctrl+c Ctrl+v ???? это всё будет мимо?
[А-Яа-я] - рег который ты просил...
...
Рейтинг: 0 / 0
05.10.2006, 15:56
    #34035236
Nisus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
Примерно так видимо
[а-яА-Я]+
...
Рейтинг: 0 / 0
06.10.2006, 09:17
    #34036549
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
>>я тут как раз копался с подобной задачей - Ctrl+c Ctrl+v ???? это всё будет мимо?

А JavaScript тебе зачем?
Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
06.10.2006, 10:56
    #34036836
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
авторА JavaScript тебе зачем?

уже не зачем - это я просто о своём задумался ;) непростая задача залочить кнопки в броузере (да ещё и от разных производителей) - но, походу тут задача другая...
...
Рейтинг: 0 / 0
06.10.2006, 23:17
    #34039087
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
>>непростая задача залочить кнопки в броузере

Кнопки лочить не нужно. Нужно лочить содержимое textbox-a (см. соответствующие события).
Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
07.10.2006, 00:41
    #34039149
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
авторКнопки лочить не нужно. Нужно лочить содержимое textbox-a (см. соответствующие события).
хорошо, вижу что ты хочешь мне объяснить как это делается...
что же - жду пояснений...
для начала, интересуют ответы на эти вопросы
1. какое содержимое? до нажатия кнопки или после нажатия?
2. какие события в данном случае будут соответствующими?
...
Рейтинг: 0 / 0
07.10.2006, 08:56
    #34039213
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
См. onkeyup, onchange.
Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
07.10.2006, 12:42
    #34039340
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
собственно, к этому гениальному ответу я был готов...
следующий вопрос:
как в этих событиях разрешить записывать в input (предположим) только цифры, при этом не забыв про Ctrl+c Ctrl+v?
...
Рейтинг: 0 / 0
07.10.2006, 16:10
    #34039521
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
Ты же регулярные выражения знаешь... Вот и вперед.

P.S. Блокировать textbox в прямом смысле этого слова от ввода невалидных данных не очень хорошая затея (хоть и реализуемая). Гораздо разумнее будет информировать пользователя о том, что введенные им данные некорректны. В любом случае без серверной валидации не обойтись. Мало ли, чувак JavaScript отключит, и привет. Можно поступить, например, вот таким вот образом:
<html>
    <head>
        <script><!--
            function checkTextBox()
            {    
                var content = document.checker.digits.value;
                var output = document.getElementById("output");
                var regexp = /^\d*$/;
                
                if (!regexp.test(content)) {
                    output.innerHTML = "<font color=\"red\"><b>Only digits are allowed!</b></font>";
                } else {
                    output.innerHTML = "";
                }
            }
        --></script>
        <title>Only Digits</title>
    </head>
    <body>
        <form name="checker">
            <input type="text" name="digits" onchange="checkTextBox()" onkeyup="checkTextBox()"/>
            <div id="output"></div>
        </form>
    </body>
</html>

Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
07.10.2006, 16:50
    #34039563
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
vladgrigуже не зачем - это я просто о своём задумался ;) непростая задача залочить кнопки в броузере (да ещё и от разных производителей)
eisernWolfКнопки лочить не нужно. Нужно лочить содержимое textbox-a (см. соответствующие события).
vladgrig2. какие события в данном случае будут соответствующими?
eisernWolfСм. onkeyup, onchange.
vladgrigкак в этих событиях разрешить записывать в input (предположим) только цифры, при этом не забыв про Ctrl+c Ctrl+v?
eisernWolfБлокировать textbox в прямом смысле этого слова от ввода невалидных данных не очень хорошая затея...
...<input type="text" name="digits" onchange ="checkTextBox()" onkeyup="checkTextBox()"/>
Круг замкнулся ;)))
vladgrigуже не зачем - это я просто о своём задумался ;) непростая задача залочить кнопки в броузере (да ещё и от разных производителей)
P.S. подсмотрел у MS - используют onblur без всяких onchange onkeyup - гениально!!!
...
Рейтинг: 0 / 0
07.10.2006, 17:44
    #34039625
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
>>подсмотрел у MS - используют onblur без всяких onchange onkeyup

Ну и зря. Наиболее IMHO оптимальный вариант я привел. Вариант с кросс-браузерной блокировкой описан в книге Wrox - Professional JavaScript for Web Developers - 2005 (там всю эту бадягу на пару глав растянули). Если возиться лень, то можно поступить следующим образом. Такой обработчик повесить на onchange:
var okContent = "";
            
            function filterTextBox(textBox)
            {
                var regexp = /^\d*$/;
                var currentContent = textBox.value;
                
                if (!regexp.test(currentContent)) {
                    textBox.value = okContent;
                } else {
                    okContent = currentContent;
                }
            }
 
А аналогичный этому - на onkeypress. Сам input тогда примет вид:
 <input type="text" onkeypress="return checkTextBox(this, event)" onkeydown="filterTextBox(this)" onchange="filterTextBox(this)" oncontextmenu="return false" />


Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
07.10.2006, 21:07
    #34039798
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
прочёл твой код, прочёл коменты к ссылке на блог... как думаешь - какие выводы сделал?
...
Рейтинг: 0 / 0
07.10.2006, 21:09
    #34039801
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
Думаешь, для меня это имеет хоть какое-нибудь значение? :)
Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
08.10.2006, 00:26
    #34039901
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
самые страшные люди на земле - это безразличные к происходящему... ;)
P.S. код приведённый тобой проверил ;) - полный отстой -
Код: plaintext
regexp.test(currentContent)
объект не поддерживает свойство - собственно, что и требовалось доказать ;)
...
Рейтинг: 0 / 0
08.10.2006, 00:34
    #34039904
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
Происходящему где? У тебя в голове? Извини, но мне действительно на это наплевать :)

>>объект не поддерживает свойство - собственно, что и требовалось доказать ;)

Сразу видно, комментарий гуру JavaScript-a :) FYI это просто перловый синтаксис. Результат идентичен new RegExp(...).
Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
08.10.2006, 02:19
    #34039944
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
авторПроисходящему где? У тебя в голове? Извини, но мне действительно на это наплевать :)

а зачем вообще, тогда пишешь!!!??? хочешь окружающим доказать какой умный? ненадо - это и так видно...
авторСразу видно, комментарий гуру JavaScript-a :)
да нет не гуру просто умею не только писать, а ещё и читать - см. рисунок
надеюсь VS для тебя авторитетно, или так себе...
P.S. подвязывай с морфием - мозги иссохнут ;)
...
Рейтинг: 0 / 0
08.10.2006, 08:08
    #34039972
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
:D Будьте так добры, обратитесь к спецификации на JavaScript, если конечно она является для вас хоть сколь либо авторитетным источником знаний (а не JScript - разницу вообще ощущаем?). Потом уже будете на личности переходить :)

P.S. Перед тем как выкладывать код сюда, он был протестирован на работоспособность в IE, FireFox и Opera последних версий. No problem. Если у вас еще останутся после этого вопросы, то вы все-таки либо начинайте новую ветку, либо завязывайте со своим безосновательным флудом.
Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
08.10.2006, 08:11
    #34039974
eisernWolf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
Кстати ради прикола сравни тот кода, что привел я и свой. Потом поймешь, кто облажался. Только в слух не говори ;)
Две капли морфия облегчат тебе жизнь.
...
Рейтинг: 0 / 0
08.10.2006, 14:16
    #34040104
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ввод только букв
авторПеред тем как выкладывать код сюда, он был протестирован на работоспособность в IE, FireFox и Opera последних версий. No problem. Если у вас еще останутся после этого вопросы, то вы все-таки либо начинайте новую ветку, либо завязывайте со своим безосновательным флудом.
что же - вижу настало время аргументов (дабы флуд стал основательным ;)

1. код Магданурова не выдерживает абсолютно никакой критики - кроссброузерность там напрочь отсутствует - нет в мозиле и нетскапе keyCode и запретить нажатие клавиши вот так event.returnValue=false там тоже никогда в жизни не удастся... (надеюсь к сегодняшнему дню он это увидел). код должен быть как минимум примерно таким
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<asp:textbox runat="server" OnKeyPress="EnsureNumeric(event)" />

<script language="Javascript">
<!--
IE = (navigator.appName=="Microsoft Internet Explorer");
NC = (navigator.appName=="Netscape");
Opera = (navigator.appName=="Opera");

function EnsureNumeric(e) {
       var key;
       if ((IE)||(Opera)) {
              key = e.keyCode;
       } 
       else {
              key = e.which;
       }
       if ((k <  48  || k >  57 ) && k !=  8 ) {
          if ((IE)||(Opera)) {
                 e.returnValue = false;
          }
          else {
                 e.preventDefault();
         }
      }      
}
-->
</script>
+ существуют ещё клавиши del, home, end - ими люди тоже пользуются...

2. по поводу тоего странного java-скрипта (почему то с синтаксисом от perl!?)
очень сильно сомневаюсь, что regexp.test (в данном контексте) будет справедливо (неважно для какого языка ;) + мозила и нетскапе при Ctrl+c and Ctrl+v тоже дают свои символы, ввод которых мы так успешно закрыли...
но у тебя совершенно другое мнение по этому поводу ;)

3. относительно вышеизложенных пунктов - у клиента запрещён javascript - все старания сведены к нулю - отсутствует проверка на сервере...

P.S. и, даже несмотря на это - было интересно слушать твои аргументы ;) но тебе на это, полагаю, тоже наплевать ;)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ввод только букв / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]