2010-08-02 38 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爲什麼val沒有定義?

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

,但是這一切被調用時,警報告訴我:

RJS error: 

TypeError: Object object_name has no method 'val' 

即使我使用jQuery 1.3 .2,文檔說.val()不是新的1.4 = \

回答

1

你的括號是有點過了,這樣的:

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

應該是:

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

目前你正在試圖調用.val()弦上fieldID,而不是jQuery對象。


從這裏發出的切線的位:如果您升級到1.4+你可以通過一個函數來.val(),這樣使這個有點短:

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

感謝1.4小費。在接下來的幾周裏,我正在升級所有的javascript,我會牢記這一點。 – NullVoxPopuli 2010-08-03 03:24:53

0

根據你的錯誤,它看起來像我fieldID是不是你認爲它是。你有沒有使用Firebug進行調試?

相關問題