Для объяснения этого необходим небольшой фон:
У меня есть старое приложение rails 2, которое имеет форму в модале. когда я отправляю эту форму, она должна обновить базу данных и закрыть модальный. сгенерированная форма выглядит так ..
> <form action="/assignments/doattendance/767107" id="modalForm_767107"
> method="post" onsubmit="jQuery('.modal-backdrop').fadeOut(200,
> function(){jQuery(this).remove();});; new
> Ajax.Updater('Assignment_767107', '/assignments/doattendance/767107',
> {asynchronous:true, evalScripts:true,
> parameters:Form.serialize(this)}); return false;">
Если вы посмотрите внимательно, вы увидите вызов прототипа Ajax в этой форме. Это генерируется вызовом rails remote_form_for
в файле erb. Сейчас же. По "причинам" я не могу использовать remote_form_for на второй странице, отображающей эту форму, и мне нужно построить форму обычно вне рельсов, используя тег <form id="monthForm>
. Но мне нужен этот прототип Ajax. У меня установлена jQuery, и она работает на сайте. Итак ...
У меня есть прототип кода, который мне нужно преобразовать в jquery. Но я продолжаю сталкиваться с ошибкой ". ajax не является функцией" ...
Код прототипа:
> new Ajax.Updater('Assignment_767107',
> '/assignments/doattendance/767107', {asynchronous:true,
> evalScripts:true, parameters:Form.serialize(this)});
- КАК Я ПРЕВРАЩАЕМСЯ ВЫШЕ ПРОШЕЛУЮ КОДЕКС прототипа В JQUERY для моей формы?
Я читал похожий вопрос здесь ...
Что эквивалентно Ajax .updater в Jquery ?
... на эту тему в StackOverflow и построили ее на основе этого ответа ...
jQuery('#monthForm').submit(function(event){
event.preventDefault();
jQuery.ajax({
url: '/assignments/doattendance/'+myValue.id,
type: "post",
dataType: "html",
data: {"Form.serialize(this)" : "Assignment_"+myValue.id},
success: function(returnData){
jQuery("#Assignment_767107").html(returnData);
},
error: function(e){
alert(e);
}
})
})
Опять же, к ajax должна быть прикреплена форма это ...
<form id="monthForm">
...
</form>
НО ... Я ничего не получаю, что я делаю не так?