0

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;
});
4

1 に答える 1

-1

応答を取得しようとしているページに同じ ID の要素が含まれている可能性があり、重複した ID が作成され、送信が台無しになります。

于 2011-06-24T21:30:44.573 に答える