У меня есть этот код, который не работает
if( $.trim($('#v5121').val()).length<1 ) {
$('#v5121').addClass('error');
$('#v5121').effect("shake", { times:1 }, 20);
error++;
}
else {
if (isNaN( $('#v5121').val() )) {
$('#v5121').addClass('error');
$('#v5121').effect("shake", { times:1 }, 20);
error++;
}
else {
if( parseFloat($('#v5121').val()) != 100 || parseFloat($('#v5121').val()) != 108 ) {
$('#v5121').addClass('error');
$('#v5121').effect("shake", { times:1 }, 20);
error++;
}
else {
$('#v5121').addClass('valid');
}
}
}
Если я вхожу в 100 или 108, это все равно дает мне ошибку (я тоже пытался с parseInt).
Если вместо
if( parseFloat($('#v5121').val()) != 100 || parseFloat($('#v5121').val()) != 108 )
я использую
if( parseFloat($('#v5121').val()) != 100 )
и в поле ввода я добавляю 100, он дает мне действительный класс и работает. Если я ввожу что-либо, кроме 100, он дает мне ошибку, как и следовало бы. То же самое происходит, если я использую
if( parseFloat($('#v5121').val()) != 108 )
Я даю ошибку, если я ввожу ничего, кроме 108, но не тогда, когда я вхожу в 108.
Когда я пытаюсь проверить, является ли значение 100 или 108, оно дает ошибку, независимо от того, какое значение я вводил.
if( parseFloat($('#v5121').val()) != 100 || parseFloat($('#v5121').val()) != 108 )
всегда верно. Если вход не должен быть 100 или 108, используйте AND (&&) вместо OR (||). Также рассмотрите установку значения в переменной перед проверкой.
var tempValue=parseFloat($('#v5121').val());
if(tempValue != 100 && tempValue != 108 )
var myInput=$('#v5121');
в верхней части кода, затем используйте эту переменную везде вместо этой переменной$('#v5121')
. Например,myInput.addClass('error');
, Код будет работать быстрее, когда jquery не нужно будет снова и снова находить один и тот же элемент.