2010-08-02 3 views
0
function replaceIfEmpty(fieldID, value){ 
    alert($j('input#'+fieldID.val())); 
    if ($j('input#'+fieldID).val() == ""){ 
     $j('input#'+fieldID).val(value); 
    } 
} 

가 제 기능을, 그리고이 내 컨트롤러에 있습니다Ruby on Rails : jQuery가 왜 정의되지 않습니까?

 page << "replaceIfEmpty('object_name', '#{t.name}');" 

하지만이 모든가 호출 될 때, 경고가 나에게 말한다 : 나는 jQuery를 1.3을 사용하고 있습니다 비록

RJS error: 

TypeError: Object object_name has no method 'val' 

.2()는 1.4에 새롭지 않다. = \

답변

1

귀하의 괄호이 조금 떨어져 있습니다

alert($j('input#'+fieldID.val())); 

가되어야한다

alert($j('input#'+fieldID).val()); 

현재 오히려 jQuery 오브젝트보다, 문자열 fieldID.val()를 호출하는 것을 시도하고있다.


여기에 문제의 접선의 비트 :

function replaceIfEmpty(fieldID, value){ 
    $j('#'+fieldID).val(function(i, oldVal) { 
    alert(oldVal); 
    return oldVal == "" ? value : oldValue; 
    }); 
} 
+0

:이 같은 .val()에 함수를 전달하여이 조금 짧게 만들 수 있습니다 경우 당신이 1.4로 업그레이드 1.4 팁 감사합니다. 다음 몇 주 동안 나는 모든 자바 스크립트를 업그레이드 할 것이고, 이것을 염두에 두겠다. – NullVoxPopuli

0

오류에 따라 fieldID가 사용자가 생각하는 것과 다르지 않은 것처럼 보입니다. Firebug를 사용하여 디버깅을 한 적이 있습니까?