2013-04-16 3 views
0

아주 간단한 함수를 작성했지만 제대로 작동하려면 if 문을 가져올 수 없습니다.jquery if 문이 제대로 작동하지 않습니다.

$("#supplyRequestTextbox-clients").live("blur", function() { 
    var textboxValue = $(this).val().replace(/\d+/g, '').replace(" ", ""); 
    if (textboxValue == "NO ACCOUNT") { 
     $(".controlBarTextboxNoAccount").fadeIn("fast"); 
    } 
}); 

입력 #의 supplyRequestTextbox - 클라이언트의 값은 클라이언트를 나타내며 다음과 같이 구성되어 있습니다
ID #의 FIRSTNAME의 성 이메일 전화 예 : 000001 홍길동 [email protected] 123-456-7890 어떤 계정이 발견되면

는 문자열은 정확히 다음과 같이 나타납니다 : 000906 NO 계정

을 내 함수에서 그때 내 if 문에서 작동하는지 확인, 숫자 먼저 공간을 제거. textboxValue에 경고하고 올바르게 전달하지만 textboxValue와 상관없이 if 문은 실행되지 않습니다.

답변

4

변경은 if 조건 : 그것은 -1가 반환 찾을 수없는 경우

if(textboxValue.indexOf("NO ACCOUNT") !== -1) 

indexOf("NO ACCOUNT")textboxValue"NO ACCOUNT" 찾습니다. 따라서 "NO ACCOUNT"이 문자열의 어느 곳에 있으면 true입니다. 이 일을

+0

예! 고마워,이게 완벽하게 작동 했어. 나는 이처럼 일찍 시도하지 않았다고 믿을 수 없어, 너무 오랫동안 그것을 쳐다 보았다. 도와 줘서 고마워! – radleybobins

+0

@radleybobins 걱정하지 마라, 모두에게 일어난다. 작은 문제 나는 방금 불쾌한 사용자가 어떤 이유로 든 자신의 이름으로 '계정 없음'을 입력하면 문제가 발생할 수 있다고 생각했다. 하지만 그럴 가능성은 희박합니다 ... –

2

비교를 위해 ==을 사용하십시오. 진리 값을 지정하면 명령문이 항상 실행됩니다. 당신은 실제로 textboxValue"NO ACCOUNT" 지정 및 부울과 같은 결과를 평가하고 당신이

if (textboxValue = "NO ACCOUNT") 

을 할 경우

+0

예, 나는 그것을 놓쳤다 고 생각할 수 없습니다. 이제는 if 문이 실행되지 않습니다. – radleybobins

+0

값에 공백이 없어야합니까? 숫자와 공백을 바꾸지 않고'000906 NO ACCOUNT' 만 확인하려고 했습니까? –

+0

나는 네가 머리가있는 곳을 좋아하지만, 내가 일하는 학교에 따라 여러 개의 ID 번호가있다. 그래서 000907 또는 000908 일 수있다. 나는 여분의 학교를 추가 할 때 유지 보수를 최소한으로하고 싶다. 그래서 내가 학교를 추가 할 때마다 여분의 OR를 추가하고 싶지 않다. ID 번호를 – radleybobins

1

if (textboxValue == "NO ACCOUNT") 

if 조건을 변경

.

+0

에서 떼어 내고 싶다. 그래서 지금은 결코 작동하지 않는다. 어떤 textboxValue가 어떤 아이디어라도 상관 없다? – radleybobins

+0

@radleybobins : 공간을 없애 버리므로 'NOACCOUNT'와 (과) 비슷할 것입니다. 텍스트 상자의 값이 실제로 무엇인지 확인하십시오. – Blender

+0

@blender textboxValue에 경고하거나 테스트 상자에 추가하면 올바른 공백이 올바르게 표시됩니다. 첫 번째 공간 만 제거됩니다. – radleybobins

0

시도 : 비교를 위해

$("#supplyRequestTextbox-clients").live("blur", function() { 
    var textboxValue = $(this).val().replace(/\d+/g, '').replace(" ", ""); 

    // check what textboxValue evaluates to: 
    alert(textboxValue); 

if (textboxValue == "NO ACCOUNT") { 
    $(".controlBarTextboxNoAccount").fadeIn("fast"); 
} 
}); 
0
  1. 사용 == Kolink 제안한다.

  2. " """, IE로 바꿉니다. if 문이 true를 반환하지 않도록 모든 공백을 제거합니다.

관련 문제