2014-04-15 2 views
1

내가 조금이처럼 보이는 기능이있어 : 기본적으로 우리가 어떤 제품 행에있어Jquery에서 .val() 변경을 "커밋"해야합니까?

$('#CompanyDropDown').bind("change", function() { 
    $('#Products').find('.ProductDropDown').each(function() { 
     setRates(this); 
    }); 
    identifyLowestRate(); 
}); 

하고, "속도"가 그 중 하나는 각 제품에 대한 몇 가지 열을. 회사 드롭 다운이 변경되면 모든 제품이 변경되고 요율 열이 업데이트됩니다.

제품이 섞일 때마다 모든 제품에서 가장 낮은 비율을 찾아야한다고 가정 해보십시오.

setRates처럼 뭔가를하고있다 :

$('#Product1').val(foo); 

identifyLowestRate는 (제품 이상 반복) 이런 일을하고있다 :

lowestRate = Math.min(parseFloat(lowestRate), parseFloat($(this).val())); 

identifyLowestRate 제품 루프에서 다시보고 가장 낮은 비율을 찾습니다. 그러나 문제는 이전의 최저 속도 인 을 마치 setRates이 아직 완료되지 않은 것처럼 찾는 것입니다.. 실제로 identifyLowestRate 이전에 중단 점이나 경고를 설정하면 setRates 변경 사항이 아직 웹 페이지에 커밋되지 않았 음을 실제로 볼 수 있습니다.

jQuery에서 "물건"인가 - .val()에서 값을 검색하기 전에 어떤 방식으로 변경 사항을 커밋해야합니까?

+1

전체 예제를 만들고 jsFiddle을 게시 할 수 있습니까? – j08691

+0

AWolff? setRates()가 일부 비동기 아약스를 수행하는지 여부를 확인하는 것에 대한 의견을 게시했습니다./... 감사합니다. AWolff를 대답으로 게시하려면 받아 들일 것입니다. – hawbsl

답변

1

아니요. 변경 사항을 val()에 적용 할 필요가 없습니다. 코드가 실행되는 순서에주의해야 할 수도 있지만 코드 조각에서 잘 나타납니다. 그러나 비동기 함수를 호출하면 오류의 원인이 될 가능성이 큽니다.

+0

예, setRates의 ajax에'async : false'를 삭제하면 해결되었습니다. – hawbsl

1

val()에 값을 전달하면 바로 설정하고 "적용"합니다. 다시 호출하면 해당 입력에 대한 최신 값을 검색합니다.

http://api.jquery.com/val/

+0

괜찮습니다. – hawbsl

관련 문제