0
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 来说并不陌生 =\

4

2 回答 2

1

你的括号有点偏离,这个:

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

应该:

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

目前您正在尝试调用.val()string fieldID,而不是 jQuery 对象。


这里的问题有点切线: 如果您升级到1.4+,您可以通过将函数传递给 来缩短它.val(),如下所示:

function replaceIfEmpty(fieldID, value){
  $j('#'+fieldID).val(function(i, oldVal) {
    alert(oldVal);
    return oldVal == "" ? value : oldValue;
  });
}
于 2010-08-02T22:03:34.940 回答
0

根据您的错误,在我看来 fieldID 不是您认为的那样。您是否完全使用 Firebug 进行过调试?

于 2010-08-02T21:34:27.340 回答