2010-08-02 45 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进行调试?

相关问题