2013-05-06 2 views
2

사용자가 몇 개의 필수 텍스트 필드를 입력해야하는 웹 앱을 만들고 있습니다. 사용자에게이를 알리려면 분홍색 텍스트 필드를 모두 입력해야한다고 명시되어 있습니다. 내가 그들에게이를 통해 분홍색 배경 주었다 (통지 내가 jQuery를 UI 스피너 위젯을 사용하고 있습니다)Javascript/jQuery 값을 기준으로 텍스트 입력 변경

$('input[type="text"]').spinner({min: 0}).css("background-color", "pink"); 

내가 할 노력하고 무엇을, 흰색의 배경 색상을 변경할 때 필드에 사용자 유형. 나는 이것을했다 :

$('input[type="text"]').keyup(function() { 
    if ($(this).val().length !== 0) { 
     $(this).css("background-color", "white"); 
    } else{ 
     $(this).css("background-color", "pink"); 
    } 
}); 

이 방법은 잘 작동하지만 텍스트 필드의 값을 바꾸기 위해 스피너와 슬라이더도 사용하고있다. 이렇게하려면 다음을 입력했습니다.

예상대로 이것이 작동하지 않았습니다. 하나의 텍스트 필드에 텍스트가 있으면 문서를 클릭하면 모든 텍스트 필드가 흰색으로 바뀝니다. 이 텍스트로 입력 할 텍스트 입력을 지정할 수 없습니다.

$('input[type="text"]').change(function() { 
    if ($(this).val().length !== 0) { 
     $(this).css("background-color", "white"); 
    } else{ 
     $(this).css("background-color", "pink"); 
    } 
}); 

하지만, 사용자 이후에만 이렇게 필드 중 클릭 수 및 값은 회 전자 또는 슬라이더로 변경되는 경우는 아무것도하지 않는다 : I는()의 jQuery 함수 .change 시도. 어떤 제안? 추신 : 나는 이것이 일종의 오래되었다는 것을 알고 있지만 최대한 많은 정보를 제공하고자했습니다.

최신 브라우저에
+0

트리거에게의 keyup 이벤트를 {다른 브라우저도 지원 추가}. – adeneo

답변

3

사용 oninput 대신 : 다른 방법으로 값을 변경할 때

$('input[type="text"]').on('input DOMAttrModified paste change',function() { 
    if ($(this).val().length !== 0) { 
     $(this).css("background-color", "white"); 
    } else{ 
     $(this).css("background-color", "pink"); 
    } 
}); 
관련 문제