Ruby on Rails:jQuery为什么没有定义val?

时间:2010-08-02 21:27:16

标签: jquery ruby-on-rails jquery-1.3.2

function replaceIfEmpty(fieldID, value){
    alert($j('input#'+fieldID.val()));
    if ($j('input#'+fieldID).val() == ""){
        $j('input#'+fieldID).val(value);
    }
}

这是我的功能,这是在我的控制器中:

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

但是当调用所有这些时,警告会告诉我:

RJS error:

TypeError: Object object_name has no method 'val'

即使我使用的是jQuery 1.3.2,但文档说.val()并不是1.4 = \

的新手。

2 个答案:

答案 0 :(得分:1)

你的括号有点偏,这个:

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

应该是:

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

目前,您尝试在字符串fieldID上调用.val(),而不是jQuery对象。


这个问题有点切线:如果你升级到 1.4 + ,你可以通过将函数传递给.val()来缩短它,像这样:

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

答案 1 :(得分:0)

根据您的错误,它看起来好像fieldID不是您认为的那样。您是否根据Firebug进行了调试?