Получение ошибки в jQuery при попытке автоматически сохранить поле формы с помощью вызова ajax - PullRequest
4 голосов
/ 06 февраля 2011

Я пытаюсь получить поле формы в проекте rails 3 для автоматического сохранения при его изменении.Я пытаюсь сделать это с помощью следующего вызова jQuery ajax:

$j("#list_" + <%= item.list_id.to_s %> + "_item_" + <%=item.id.to_s %>).live("change", 
 function(){
      $j.ajax({ 
           beforeSend: function(request) {
               request.setRequestHeader("Accept", "text/javascript"); 
           },
           type: 'POST',
           url: '<%= list_text_item_path(List.find(item.list_id), TextItem.find(item.id)) %>/update',
           data: {
                value: $j(this).val(),
                id: '<%= item.id.to_s %>',
                list_id: '<%= item.list_id.to_s %>'
           },
           success: function(){
                alert("success");
           } 
      });
 });

При каждом изменении текстового поля я получаю следующую ошибку в jQuery:

 (c.value || "").replace is not a function

Это воба jQuery-1.5.min.js.У меня также была такая же ошибка с jQuery-1.4.2.min.js.(Я обновил до 1.5, чтобы посмотреть, поможет ли это что-нибудь.)

Есть мысли о том, где я иду не так?Большое спасибо.

Редактировать: О, дерьмо, когда я отправлял свой HTML-код в пост, я понял, что вызов .live () привязан к контейнеру div элемента ввода формы, а не к самому элементу ввода формы.У меня есть отдельная проблема, но я думаю, что я опубликую это, как только я выясню, что может быть причиной этого ...

1 Ответ

1 голос
/ 07 февраля 2011

Тьфу, я понял это ... неосторожная ошибка.У меня был элемент input в элементе списка HTML, и к функции li был привязан вызов функции .live (), а не id элемента input.Спасибо за помощь, ребята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...