Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проверка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
SAD
Отправлено: 25 Февраля, 2011 - 20:52:06
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




есть текстовое поле
беру с него значение(можно ввести только число) и делаю math.round
потом делаю проверку на пустоту заполнения поля
if (var == '') то ничего не ввели
в чем собственно прикол, если стоит 0, то он говорит, что поле незаполнено. почему math.round все портит?? если не округлять, то все гуд

(Отредактировано автором: 25 Февраля, 2011 - 20:56:50)

 
 Top
Champion Супермодератор
Отправлено: 25 Февраля, 2011 - 21:05:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Кусок кода был бы понятнее и короче.
 
 Top
OrmaJever
Отправлено: 25 Февраля, 2011 - 21:25:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




нужно === ставить, и возможно не '' а NULL


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
ALEN
Отправлено: 25 Февраля, 2011 - 21:29:46
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




SAD пишет:
можно ввести только число

SAD пишет:
проверку на пустоту заполнения

А почему сразу всех не обломать и не проверять с помощью регулярного выражения вводимое число и одновременно смотреть, чтоб был 1 или более символов??? Для чего мучить попу и думать как обойти?

(Отредактировано автором: 25 Февраля, 2011 - 21:30:44)

 
 Top
SAD
Отправлено: 25 Февраля, 2011 - 22:23:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var firstdif = Math.round($('#firstdif').val());
  2. if (firstdif == '') {
  3.     alert('Некорректно заполнено поле');
  4.     return false;
  5. }

пишет true

(Отредактировано автором: 25 Февраля, 2011 - 22:25:05)

 
 Top
ALEN
Отправлено: 25 Февраля, 2011 - 22:29:26
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




SAD
я же предложил вариант с регуляркой, плюс предлагаю стараться использовать JS а не его библиотеки
 
 Top
SAD
Отправлено: 25 Февраля, 2011 - 22:33:23
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




это лишь малая часть большой системы
 
 Top
ALEN
Отправлено: 25 Февраля, 2011 - 22:35:20
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




SAD
Ладно, главное чтоб задача правильно решилась))
 
 Top
evgenijj
Отправлено: 25 Февраля, 2011 - 22:38:58
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var firstdif = Math.round($('#firstdif').val());
  2.       if (firstdif == '') {
  3.           alert('Некорректно заполнено поле');
  4.           return false;
  5.       }

Как эта конструкция может вернуть true -- оставим на совести автора темы. Но мне непонятно, как вообще эта конструкция может вернуть пустую строку ''. Если мы приводим некую строку (а поле input у нас строка) к целому, то мы получаем либо 0, либо положительное или отрицательное целое число. В любом случае -- не пустую строку.

(Отредактировано автором: 25 Февраля, 2011 - 22:40:15)

 
 Top
JustUserR
Отправлено: 25 Февраля, 2011 - 23:47:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




SAD пишет:
В чем собственно прикол, если стоит 0, то он говорит, что поле незаполнено. почему math.round все портит?? если не округлять, то все гуд
Для осуществления корректного решения предполагаемой задачи, необходимо произведение сравнения требуемых информационных полей без использования конструкций, приводящих к осуществлению автоматического преобразования типа данных; в качестве возможног средства решения допустимо использование программных элементов, позволяющих проводить идентификацию объектов в string-уровне, и обеспечивать требуемые операции сопоставления в зависимости от используемого метода трактования информационного поля
CODE (text):
скопировать код в буфер обмена
  1. var inp_val=document.all["field_id"].value // String interpretation
  2. if(inp_val==="") {/* Field is empty */}
  3. else {inp_val=new Number(Math.round(parseInt(inp_val)))
  4. }


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
SAD
Отправлено: 26 Февраля, 2011 - 01:18:18
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Если не делать округление,то все нормально. Если сделать, то не гуд.
evgenijj пишет:
Как эта конструкция может вернуть true -- оставим на совести автора темы.

делаю alert(firstdif == ''); он и показывает true Улыбка
поверьте, я знаю, что пишу. я не лапоть)) я работаю c js каждый божий день - работа у меня такая.

(Отредактировано автором: 26 Февраля, 2011 - 02:17:43)

 
 Top
OrmaJever
Отправлено: 26 Февраля, 2011 - 01:49:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Значение из поля берётся в типе string, округляя функция возвращает тип int, а без округления так и остаётся string иполучается первое значение 0, а второе "0". А разницу прочитай тут http://javascript[dot]ru/basic/types#boolean
Поэтому нужно переводить в один тип и сравнивать.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
SAD
Отправлено: 26 Февраля, 2011 - 01:53:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




прикольно
спс
 
 Top
JustUserR
Отправлено: 27 Февраля, 2011 - 16:18:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




SAD пишет:
Если не делать округление,то все нормально. Если сделать, то не гуд
Использования языка JS предполагает возможность осуществления автоматического преобразования типового уровня трактования для информационных полей, что обеспечивается в процессе использование встроенных функциональных объектов и операций, предполагающих использование фиксированного типа данных в заданной позиции размещаемого аргумента или операнда


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB