27.11.2011, 20:25
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от Rionty
|
мне мой вариант устраивает.
|
Не буду навязывать свой) Просто написал...
Сообщение от Rionty
|
непонимаю, на самом деле таких гонений родного языка.
хотя зависит от проекта. для себя пишу proverka, для крупных написал бы CheckDigit или что-то в этом духе.
|
Я патриотично отношусь к русскому языку) Просто транслит неудобен для чтения, имхо.
|
|
27.11.2011, 21:29
|
Интересующийся
|
|
Регистрация: 22.11.2011
Сообщений: 13
|
|
Никто так и не смог добится запрета на ввод! Все решения через замену с некрасивой перерисовку поля ввода((( ЖАЛЬ!
|
|
27.11.2011, 21:32
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от BoSO
|
Никто так и не смог добится запрета на ввод! Все решения через замену с некрасивой перерисовку поля ввода((( ЖАЛЬ!
|
Ты дурной, штоле? Ты мой вариант видел? В нём нет никакой перерисовки.
|
|
27.11.2011, 21:34
|
Интересующийся
|
|
Регистрация: 22.11.2011
Сообщений: 13
|
|
Сообщение от trikadin
|
Простой !== хороший. Регулярки - не самая быстрая часть js. Лучше так:
<input id="d-only">
<script>
document.getElementById("d-only").onkeypress= function(event){
event= event || window.event;
if (event.charCode && (event.charCode < 48 || event.charCode > 57))// проверка на event.charCode - чтобы пользователь мог нажать backspace, enter, стрелочку назад...
return false;
};
</script>
P. S. Кстати, зачем у вас в атрибуте стоит return, если ф-ция proverka (кстати, пишите всё-таки check) ничего не возвращает?
|
НЕ ПАШЕТ ЭТОТ ВАРИАНТ В ПРИМЕРЕ
|
|
27.11.2011, 21:36
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от BoSO
|
НЕ ПАШЕТ ЭТОТ ВАРИАНТ В ПРИМЕРЕ
|
Какой браузер?
|
|
27.11.2011, 21:37
|
Интересующийся
|
|
Регистрация: 22.11.2011
Сообщений: 13
|
|
OPERA)
в лисе таже фигня
дебаггер дает ошибку
document.getElementById("d-only") is null
Последний раз редактировалось BoSO, 27.11.2011 в 21:40.
|
|
27.11.2011, 22:11
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Сообщение от Rionty
|
про check промолчу, дело каждого. будь моя воля я бы вообще всё на чистом русском писал. непонимаю, на самом деле таких гонений родного языка.
|
1. Вам надо в 1с прогеры идти.
2. А коли для себя и очень хочется, то и в js нет проблоем:
Пример: ужасы и извращения
var переменная="такие дела";
сообщение=function(текст){alert(текст)};
сообщение(переменная)
__________________
29375, 35
|
|
27.11.2011, 22:50
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от BoSO
|
OPERA)
в лисе таже фигня
дебаггер дает ошибку
document.getElementById("d-only") is null
|
***л я эту оперу... Там нет charCode.
Короче, там только keyCode, его и проверяешь. Чтобы работали шифты/контролы - записываешь их значения в массив и каждый раз проверяешь, нет ли совпадению по этому массиву.
А ещё есть ie, в котором нет определения шифта и контрола (в шестом, во всяком случае).
Под них пишем фиксы. Для нормальных - то, что тут.
|
|
27.11.2011, 23:07
|
Интересующийся
|
|
Регистрация: 22.11.2011
Сообщений: 13
|
|
Сообщение от trikadin
|
***л я эту оперу... Там нет charCode.
Короче, там только keyCode, его и проверяешь. Чтобы работали шифты/контролы - записываешь их значения в массив и каждый раз проверяешь, нет ли совпадению по этому массиву.
А ещё есть ie, в котором нет определения шифта и контрола (в шестом, во всяком случае).
Под них пишем фиксы. Для нормальных - то, что тут.
|
И кому нужен такой script?
Тут пашет, тут не пашет)))))))))
|
|
27.11.2011, 23:09
|
Интересующийся
|
|
Регистрация: 22.11.2011
Сообщений: 13
|
|
Вот похожее решение с помощью jQuery
<form id="login_form">
<input type="text" class="asci_only mail" name="login" />
<input type="password" name="password" />
<input type="submit" />
</form>
<script type="text/javascript">
$('input.asci_only').keypress( function(e) {
if($.browser.msie)
return isAsci(e.keyCode)
else
return (e.keyCode) ? true : isAsci(e.charCode)
});
function isAsci(cCode){
return /[a-zA-Z0-9@\.]/.test(String.fromCharCode(cCode))
}
$('input.mail').change( function() {
if(!validateEmail(this.value)){
alert('Введите email')
this.focus()
return false
}
return true
});
$('#login_form').submit( function(){
return $('input.mail').change()
})
})
function validateEmail(email){
return (email.search(/^[^@\s]+@[^@\s]+\.[^@\s]{2,}$/) == 0) ? true : false
}
</script>
|
|
|
|