2014-04-24 2 views
0

안녕하세요, 저는 입력에 기능을 발사하고 있습니다. 코드는 정확하지만 이상한 일이 발생합니다. 입력 값을 변경하고 페이지의 아무 곳이나 클릭하면 입력 값은 $ 2323,44 (예 :)이됩니다. 그러나 탭 키를 사용하여 입력을 변경 한 후에 입력을 그대로두면이 기능은 (the alert message is fired) 이라고합니다. 그러나 입력 값은 $으로 유지되지 않습니다. firebug로 디버깅 할 때 그것은 두 가지 상황 모두에서 매력처럼 작동합니다. 아무도 제안이 없나요? onblur 이벤트를 사용해 보았는데 같은 일이 발생합니다. 이 같은jquery onchange/onblur 이벤트

<input id='TEST' onchange='validate($(this))'/> 

    function validate(field) { 
    var value = $(field).val(); 
    /*...some logic here ...*/ 

    if (value > MaxExample) { 
     $(field).val('$ 0,00'); 
     clearInputsOfTheTable(); 
     alert("Max"); 
    } else if (value < MinExample) { 
     $(field).val('$ 0,00'); 
     clearInputsOfTheTable(); 
     alert("Min"); 
    } else { 
     $(field).val("$ " + valorFinal); 
     alert("good"); 
     clearInputsOfTheTable(); 
     otherFunction(); 
    } 
} 
+0

입니까? – Satpal

+0

'field'의 스페인어입니다. 나는 그의 예를 스페인어에서 영어로 번역하는 불완전한 일을했다고 생각한다. – Barmar

+0

바로 그것입니다. @Barmar! hehe –

답변

0

사용 foucusout 이벤트 :`campo`은 무엇

$(document).ready(function(){ 

$('#TEST').focusout(function(){ 


var value = $(campo).val(); 
/*...some irelevant logic here ...*/ 

if (value > MaxExample) { 
    $(campo).val('$ 0,00'); 
    clearInputsOfTheTable(); 
    alert("Max"); 
} else if (value < MinExample) { 
    $(campo).val('$ 0,00'); 
    clearInputsOfTheTable(); 
    alert("Min"); 
} else { 
    $(campo).val("$ " + valorFinal); 
    alert("good"); 
    clearInputsOfTheTable(); 
    otherFunction(); 
} 

}) 

}) 
+0

도움 주셔서 감사합니다, 사람,하지만 작동하지 않았다! = ( –

+0

Btw, 나는 MoneyMask.js라는 Jquery 플러그인을 사용하여 문제를 해결했으며 브라질의 국가 화폐 인 'Real'에 대한 값을 사용했습니다! 정말 도움이됩니다. –