Я пытаюсь впервые использовать плагин jQuery form на вкладке jQuery-ui. Я могу загрузить форму во вкладку и отправить форму. Запрос проходит успешно, и данные добавляются в базу данных, как и планировалось. Поскольку он перенаправляет на чистую версию формы, HTML снова помещается во вкладку, но я получаю ошибку javascript: $ is not defined
ссылается на строку, где jQuery впервые используется на странице формы.
Я предполагаю, что есть какая-то магия, которую я еще не обнаружил. Если это сработало в первый раз, то должно сработать и во второй раз, не так ли?
Вот что я сейчас делаю:
Моя форма
<div id="new-shift" class="${type.name}">
<h2 id="crudBlankTitle">&{'crud.blank.title', type.modelName}</h2>
<div class="objectForm">
#{form action:@create(), id: 'new-shift-form', enctype:'multipart/form-data'}
#{crud.form /}
<p class="crudButtons">
<input type="submit" name="_save" value="&{'crud.save', type.modelName}" />
<input type="submit" name="_saveAndAddAnother" value="&{'crud.saveAndAddAnother', type.modelName}" />
</p>
#{/form}
</div>
</div>
, который загружается в элемент вкладок jQuery-ui через ajax
<div id="tabs">
<ul>
<li>#{a @Shifts.blank()}<span>New Shift</span>#{/a}</li>
<!-- above line renders as
<li><a href="/shifts/new"><span>New Shift</span></a></li>
-->
</ul>
</div>
и после загрузки подключается плагин Form
<script>
$(function() {
var tabs = $("#tabs");
tabs.tabs({
load: function (event, ui) {
$('#new-shift-form').ajaxForm({
target: '#new-shift'
});
}
});
});
</script>
Обновление : я уже пробовал это, используя ajaxSubmit
, но результат тот же. «$ не определено» при второй загрузке. Использование live
вместо применения плагина формы при загрузке также не помогло. Я действительно в недоумении, что попробовать дальше.
$('#new-shift-form').live("submit", function() {
$(this).ajaxSubmit({
target: '#new-shift',
clearForm: true,
replaceTarget: true
});
return false;
});