Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не срабатывает условие. (https://javascript.ru/forum/events/33076-ne-srabatyvaet-uslovie.html)

x3zone 09.11.2012 12:54

Не срабатывает условие.
 
Здравствуйте!
не могу понять почему это условие не работает
if(curVal == '' || isNaN(curVal*1) || curVal.length != '10' || curVal.length != '16'){
			alert('Введите');
			$('.voice_p1_inp input').val('');
		}


а так работает
if(curVal == '' || isNaN(curVal*1) || curVal.length != '10'){
			alert('Введите ');
			$('.voice_p1_inp input').val('');
		}


Нужно заставить работать первое условие.Не понимаю что не так.

x3zone 09.11.2012 12:56

Разобрался.

danik.js 09.11.2012 13:24

1) условие curVal == '' есть частный случай условия curVal.length != '10' , поэтому его можно выкинуть.
2) curVal.length имеет числовой тип, зачем вы сравниваете его со строками вида '10', '16' ?
3) условие (curVal.length != '10' || curVal.length != '16') будет выполняться всегда. Смотрим: первая часть условия будет истиной всегда, когда длина не равна 10, второе условие даже проверяться не будет. В случае же когда число равно десяти, то оно само собой, не равно 16, и второе условие выполнится. Оно и понятно, число не может одновременно быть равно и 10 и 16.


Часовой пояс GMT +3, время: 10:40.