jQuery-ui タブ内で、初めてjQuery フォームプラグインを使用しようとしています。フォームをタブにロードしてフォームを送信できます。リクエストは正常に処理され、データは計画どおりにデータベースに追加されます。クリーン バージョンのフォームにリダイレクトすると、HTML が再びタブに表示されますが、javascript エラーが発生$ is not defined
します。フォーム ページで jQuery が最初に使用される行を参照しています。
まだ発見されていない魔法のようなものがあると思います。1回目でうまくいったなら、2回目もうまくいくはずですよね?
これが私が今していることです:
私のフォーム
<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>
ajaxを介してjQuery-uiタブ要素にロードされます
<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>
ロードされると、フォームプラグインが適用されます
<script>
$(function() {
var tabs = $("#tabs");
tabs.tabs({
load: function (event, ui) {
$('#new-shift-form').ajaxForm({
target: '#new-shift'
});
}
});
});
</script>
更新:これも試してみましajaxSubmit
たが、結果は同じです。2回目のロード時に「$は定義されていません」。ロード時にフォームプラグインを適用する代わりに使用しlive
ても、どちらも役に立ちませんでした。私は次に何をしようか本当に途方に暮れています。
$('#new-shift-form').live("submit", function() {
$(this).ajaxSubmit({
target: '#new-shift',
clearForm: true,
replaceTarget: true
});
return false;
});