Ruby on Rails: jQuery, почему val не определен? - PullRequest
0 голосов
/ 03 августа 2010
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 ]

1 голос
/ 03 августа 2010

Ваши скобки немного не совпадают, это:

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 голосов
/ 03 августа 2010

Исходя из вашей ошибки, мне кажется, что fieldID - это не то, что вы думаете.Вы вообще отлаживали с помощью Firebug?

...