2012-09-05 4 views
0

그래서 먼저 코드 :jQuery를 덮어 쓰기 기능

$("input").on("keyup", function() { 
    var filled = $("input").filter(function() { 
     return this.value.length > 0; 
    }); 

1 부

if (filled.length < 1) {       
    var test= $('#test').val(); 
    if (test == ""){ 
     $('#test').css('border-color',green); 
    } 
} else { ... } 

2 부

if (filled.length > 0 && filled.length <= 4) {     
    $('#test').keyup(function() { 
     var test = $('#test').val(); 
     if (test=="") { 
      $('#test').css('border-color',red); 
     } 
    } 
}); 

이 선택 사항 4 개 텍스트 입력이 양식에서입니다 하지만 그들 중 하나에 사용자 필드가 있다면 그는 모두 그들 필드에 있어야합니다.

fill.length가 0보다 작고 < = 4 인 경우 필드가 필요하며 예를 들어 입력 테두리를 빨간색으로 지정하고 싶습니다.

하지만 fill.length가 < (= 0) 인 경우 모든 테두리가 녹색이되어야합니다.

문제는 내가 입력에 내용을 쓰고 모두 지우면 녹색으로 표시되지만 Part2가 Part1을 덮어 쓰면 빨간색으로 표시된다는 것입니다.

내 질문 :
- 어떻게 수정합니까?
- 이 문제의 원인은 어디입니까? (JQuery와 이론)

가까이 내가 가진 "오른쪽"코드 대체 1 부에 얻을 수 있습니다 : (키

if(filled.length < 1) 
{      
    $('#test').keyup(function() 
    { 
     var test = $('#test').val(); 

     if(test=="") 
     { 
       $('#test').css('border-color',green); 
     } 
    } 

} 

그러나 입력이 비어있을 때, 나는 한 번 더 삭제해야 부품 번호 1을 걷어차 고 부품 2를 교체하십시오.

추신 : 더 많은 코드가 필요하거나 문제에 대한 설명이 있으면 =로 문의하십시오.

편집
바이올린 : http://jsfiddle.net/WzE9k/13/. 코드는 정확히 같지 않지만 요점은 같습니다. 필드가 비어있을 때 "아무것도 쓰지 않습니다"는 표시해야하지만 그렇지 않습니다. Heres는

+0

: // jsfiddle.그물 많은 코드 :). –

+1

질문을 게시하기 전에 코드의 형식을 지정하십시오. 그것은 크게 대답 할 기회를 증가시킬 것입니다. – raina77ow

+0

필자는 jsfiddle이 필요하다고 생각합니다. 필터 기능이 문제가되는 것처럼 느껴집니다. 각각을 수행 한 다음 함수를 호출하고 값을 확인하기위한 참조로 "this"를 사용하십시오. –

답변

0

당신을 Heres

$('input').keyup(function() { 
    // store how many textboxes are not empty 
    var len = $('input').filter(function() { 
     return $(this).val().length > 0 
    }).length; 
    $('input').css('border', function() { 
     // if number is less than 4 and greater than zero 
     // return red 
     // else return green 
     return len < 4 && len > 0 ? 'red solid 1px' : 'green solid 1px'; 
    }); 
});​ 

http://jsfiddle.net/7mVLu/

일하는 것이 자바 스크립트 바닐라와 실행과 같은

http://jsfiddle.net/7mVLu/1/

+0

고마워요! – user1648791

0

뭔가를 변경 텍스트와 바이올린을 수행 할 수있는 작업의 샘플 많은 톤의 필드로 훨씬 빠릅니다.

http://jsfiddle.net/TzqPT/

0

여러 항목에 액세스 할 경우 내가 더 나은 당신 같은 부모 내에 존재하는 다른 같은 요소를 구별 할 수 있도록 class를 사용하는 것이 좋습니다 것입니다.

체크 나는 [jsfiddle] (HTTP를 만드는 게 좋을 것이 http://jsfiddle.net/GgzC5/