2014-04-27 2 views
0

가 나는 100 (108)를 입력하면 여전히 나에게 오류를 제공확인 입력 값이 하나

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'); 
      } 
     } 
    } 

작동하지 않습니다이 코드가 (내가 너무으로 parseInt와 시도) 다른 값의 경우.

내가

if(parseFloat($('#v5121').val()) != 100) 

을 사용하고 입력 상자에 내가 100를 추가하는 대신

if(parseFloat($('#v5121').val()) != 100 || parseFloat($('#v5121').val()) != 108) 

의 그것이 나에게 유효한 클래스와 작품을 제공합니다. 100을 입력하면 100을 넘기면 오류가 발생합니다. 같은 일이 내가 108 아무것도하지만를 입력하면 내가 오류를 제공

if(parseFloat($('#v5121').val()) != 108) 

사용하지만, 경우 이동하지 내가 값이 100 또는 108을인지 확인을 할 때 나는 108

를 입력 할 때 내가 입력 한 값에 상관없이 오류를 준다.

답변

0
if(parseFloat($('#v5121').val()) != 100 || parseFloat($('#v5121').val()) != 108) 

은 항상 true입니다. 입력 값이 100 또는 108이 아니어야하는 경우 OR (||) 대신 AND (& &)를 사용하십시오. 또한 검사 전에 변수에 값을 설정하는 것도 고려하십시오.

var tempValue=parseFloat($('#v5121').val()); 
if(tempValue != 100 && tempValue != 108) 
+0

감사합니다. 그것은 효과가있다 – xlucian

+0

제안을 신경 쓰지 않는다면, 코드의 맨 위에'var myInput = $ ('# v5121');을 설정하고 그 변수를 어디서나 사용하는 것이 좋을 것이다.'$ ('# v5121 ')'. 예를 들어,'myInput.addClass ('error');'. jquery가 같은 요소를 반복해서 찾아야 할 필요가 없을 때 코드가 더 빨리 실행됩니다. – diynevala

+0

감사합니다 diynevala, 고려로 걸릴 것입니다 – xlucian