2011-11-18 4 views
1

내가 jQuery를 함께 약간의 문제가있다 :JQuery와 addclass 오류

$('#form-submit').click(function() { 

    $('#textarea, #name').removeClass('error-state').addClass('normal-state'); 

    var myName = $('#name').val(); 
    var myContent = $('#textarea').val(); 

    if (myContent == '' || myName == '') 
    { 
     $('#textarea, #name').removeClass('normal-state').addClass('error-state'); 
     return false; 
    } 

    [more code here] 

}); 

이 코드는 #textarea 좋은 작동하지만 #name을 위해하지 않습니다, 내가 확인 한 오류를 찾을 수없이-다시 확인을 다시.

그러나, 우리는 추가하는 경우 :

$('#name').val('some value'); 

변화 return false; 전에 값하지만 CSS 클래스를 여전히 동일합니다.

아이디어가 있으십니까?

+0

아무것도 볼 수 없습니다 코드가 잘못되었습니다. http://jsfiddle.net/ 데모를 작성하십시오. –

+0

선택자에 문제가 있는지 여부를 알 수 있도록 HTML을 표시하십시오. – zzzzBov

+1

"이름"에 대한 html을 표시 할 수 있습니까? – devrooms

답변

1

시도해보십시오 :

$('#form-submit').click(function() { 

    var arrJEls = $('#textarea, #name'); 

    arrJEls.each(function(i){ 
     //See what happens with each element: 
     console.log($(this)); 
     $(this).removeClass('error-state').addClass('normal-state'); 
    }); 

    var myName = $('#name').val(); 
    var myContent = $('#textarea').val(); 

    if (myContent == '' || myName == '') 
    { 
     arrJEls.each(function(i){ 
      //See what happens with each element: 
      console.log($(this)); 
      $(this).removeClass('normal-state').addClass('error-state'); 
     }); 
     return false; 
    } 

    [more code here] 

}); 
+1

jQuery에서 좋은 점은 일부 기능을 적용하기 위해 각 요소를 반복 할 필요가 없다는 것입니다. OP의 코드가 작동하지 않는다면, 이것도 마찬가지입니다. –

+1

'.each()'함수가 필요하다고 생각하지 않는다.'arrJEls' 변수에'.removeClass (...). addClass (...)'를 호출하면 두 요소 모두에 영향을 줄 것이다. 그러나 여러 번 액세스 할 수 있으므로 선택기를 변수에 캐시하는 것이 좋습니다. – Jasper

+0

각 요소에 console.log()를 추가하는 것을 잊어 버렸습니다. – Galled

2

코드는 잘 작동합니다 - http://jsfiddle.net/Zpxmr/

을 그리고 난 당신이 아이디의 단일 사용이라는 것을 알고 하나 개의 요소에 적용되는 희망

+0

예, 이것으로 시도했습니다 : console.info ($ ('name'). hasClass ('error-state')); 그리고 나는 콘솔에서 TRUE를 얻었지만 CSS 스타일은 여전히 ​​렌더링하지 않았다. : – greenbandit

+1

ID를 다른 것으로 변경하려고 시도한 적이 있습니까? "이름"이라는 ID가 내 원인을 때로는 문제가되는 것으로 의심됩니다. – Janis