2011-04-26 6 views
1

인 요소 값을 편집 :이 코드가 조건

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.trackInputHours').change(function() { 
      $(this).closest('.trackOn').nextAll('.trackOn').find('.trackInputHours').val($(this).val()); 
     });    
    }); 
</script> 

을하고 해당 요소의 값이 ??하거나 새 값보다 작은 경우에만 나는 (val($(this).val())으로) 값을 변경하고 싶습니다.

일종의 조건을 val()에 사용할 수 있습니까? 또는 어떤 전략이 더 낫습니까?

+0

실재 코드가 있습니까? 나는 당신이 원하는 것을 이해하지 못했습니다 ... –

+0

http://jsfiddle.net/kAxpv/ – markzzz

답변

2

val 콜백 옵션을 사용하십시오.

$('.trackInputHours').change(function() { 
    var changeVal = $(this).val(); 
    $(this).closest('.trackOn') 
     .nextAll('.trackOn').find('.trackInputHours') 
     .val(function(i, v){ 
      if (v == '??' || v < changeVal) // note: you may need to parse here 
       return changeVal; 
      return v; 
     }); 
}); 
+0

일할 것 같습니다! 그런데 왜 val 함수에 변수'i'를 넘겨 줍니까? – markzzz

+0

@markzzz -'i'는 요소 스택의 현재 색인입니다. 일반적으로 배열에서 어떤 액션을 수행하는 콜백 함수의 경우 배열의 인덱스가 함수의 인수로 전달됩니다. –

+0

아 ... 괜찮아요.하지만 여기서 변수를 없앨 수 있습니까? :) – markzzz