Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка формы. Выделение цветом пустого поля ввод 
:(
    Опции темы
Гость_Dan
Дата 15.3.2005, 13:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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

Подскажите как сделать такую вот вещь...
Есть форма которая содержит несколько полей ввода, например
Код

<input type="text" name="text" style="border: 1px solid #000000;">
, при заполнении таких вот полей должно обрабатываться следующее событие, если поле ввода пустое то style="border: 1px solid red;", а как только будет введен хотя бы один символ style="border: 1px solid #000000;" т.е. пока поле пустое оно обведено красным, когда не пустое, то черным.
У меня есть вот такие наброски:
Код

<input type="text" name="text" onKeyPress="if (this.value.empty = true) { this.style.border = '1px solid #000000' }"; style="border: 1px solid red;">


но не работает например когда страница обновилась, данные введены в поле, но оно сново красное...

подскажите плиз, что где не правильно?

Это сообщение отредактировал(а) Aliance - 21.3.2005, 18:00
  Вверх
batigoal
Дата 15.3.2005, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата
когда страница обновилась

Сделай в
Код

<body onLoad="check()">

потом в функции check определяем, пустое ли поле и присваиваем соотв. стиль.

Цитата
this.value.empty = true
- наверное, все-таки == ?
Добавлено @ 13:42
И лучше использовать не onKeyPress, а onChange, чтобы он на стрелки и прочее не реагировал.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
GoodBoy
Дата 15.3.2005, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Может вот так:
Код
<input type="text" name="text" onKeyPress="if (this.value != '') { this.style.border = '1px solid #000000' } else { this.style.border = '1px solid #ff0000' }" style="border: 1px solid red;">



--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Aliance
Дата 15.3.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
Guest
Дата 15.3.2005, 17:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











нашел вот такой скрипт, но незнаю, как его заточить под несколько инпутов

Код
<script>
function isNotEmpty(elemId) {
    var elem = document.getElementById(elemId);
    var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        elem.style.border = '1px solid red';
        return false;
    } else {
        elem.style.border = '1px solid black';
        return true;
    }
}
</script>
<body onload="isNotEmpty('str')">
<input type="text" id="str" name="text" onkeyup="isNotEmpty(this.id)"> 
</body>

  Вверх
Aliance
Дата 15.3.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Код

<input type="text" id="str1" name="text1" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str2" name="text2" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str3" name="text3" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str4" name="text4" onkeyup="isNotEmpty(this.id)">
<!-- и так далее........ -->

Добавлено @ 17:20
Цитата(Guest @ 15.3.2005, 17:15)
<body onload="isNotEmpty('str')">

Это не нужно...
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 16.3.2005, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Aliance @ 15.3.2005, 16:20)
Это не нужно...

Нужно, ведь после загрузки документа нужно обвести пустое красным. Заранее нельзя ибо браузер сам автоматом заполнить может, проверка по onLoad самое то.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Гость_Dan
Дата 16.3.2005, 09:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











И как тогда правильно? Если делать так:

Код
<script>
function isNotEmpty(elemId) {
    var elem = document.getElementById(elemId);
    var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        elem.style.border = '1px solid red';
        return false;
    } else {
        elem.style.border = '1px solid black';
        return true;
    }
}
</script>
<body onload="isNotEmpty('str')">
<input type="text" id="str1" name="text1" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str2" name="text2" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str3" name="text3" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str4" name="text4" onkeyup="isNotEmpty(this.id)">
</body>


пишет, что ошибка в 3 линии.
  Вверх
GoodBoy
Дата 16.3.2005, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Гость_Dan, зарегистрируйтесь! smile

Цитата
пишет, что ошибка в 3 линии.

При загрузке страницы скрипт пытается проверить объект с ID=str, которого у вас естественно нет... самый просто вариант - сделать несколько вызовов функции, подставляя все ID:

Код
<script>
function isNotEmpty(elemId) {
    var elem = document.getElementById(elemId);
    var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        elem.style.border = '1px solid red';
        return false;
    } else {
        elem.style.border = '1px solid black';
        return true;
    }
}
</script>
<body onload="isNotEmpty('str1');isNotEmpty('str2');isNotEmpty('str3');isNotEmpty('str4');">
<input type="text" id="str1" name="text1" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str2" name="text2" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str3" name="text3" onkeyup="isNotEmpty(this.id)">
<input type="text" id="str4" name="text4" onkeyup="isNotEmpty(this.id)">
</body>

Но это совершенно неоптимальный вариант... Попробуйте довести его до ума! smile


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Aliance
Дата 16.3.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Sardar
Т.е. выделение происходит после загрузки? Хм... но тогда в первый раз все будут выделены...
Извеняюсь, я значит не понял сути...
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 17.3.2005, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Пишем универсальный валидатор текстовых полей:
Код
<script type="text/javascript">
/**
* Обрабатывет все элементы после загрузки
*/
function initFormCheck() {
  var inps=document.getElementsByTagName("INPUT");
  for(var i=0; i<inps.length; i++) {
    if(inps[i].getAttribute("testreg")==null) continue;
    else inps[i].onkeyup=inputTextCheck; 
    inputTextCheck(inps[i]);
  }
}
/**
* Проверка. Реги и прочую инфу берём из аттрибутов тега.
*/
function inputTextCheck(obj) {
  var o=(obj&&obj.tagName)? obj: this;
  var reg=new RegExp("^"+o.getAttribute("testreg")+"$");
  if(reg.test(o.value)) {
    o.className=o.getAttribute("passclass");
    return true;
  } else {
    o.className=o.getAttribute("failclass");
    return false;
  }
}
</script>

<body onload="initFormCheck();">
<!-- пример: допускаем только цифры 0-9 -->
<input type="text" id="str1" name="text1" testreg="[0-9]+" failclass="fout" passclass="pass">
<!-- допускаем что угодно -->
<input type="text" id="str2" name="text2" testreg=".+" failclass="fout" passclass="pass">
<!-- не обрабатываем поле -->
<input type="text" id="str5" name="text5">
<!-- как видно  для обработки требудется три параметра: рег, имя стиля при правильной проверке и имя стиля при ошибке -->
</body>

Стили можно задать какие угодно, по задаче это:
Код
<style type="text/css">
.pass {
  border: 1px solid black;
}
.fout {
  border: 1px solid red;
}
</style>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
batigoal
Дата 17.3.2005, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Sardar
Спасибо! Мне пригодится.



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.