動的タブへのフォーム送信に苦労しています。タブから抜け出して、更新ページを表示するだけのようです。
長いリードイン。インデックスページに2つのタブを作成します。検索は内部で行われ、2番目は大きなフォームページを呼び出します。
<div id="tabs">
<ul>
<li><a href="create.cfm"><span>Create</span></a></li>
<li><a href="#searchtab"><span>Search</span></a></li>
</ul>
<div id="searchtab">
[search page stuff]
</div>
</div>
どちらのページもうまく機能します。[作成]タブでは、新しいフォームに入力して送信できます。送信すると、検証してから[作成]タブに「ありがとう」が表示されます。
これは送信コードのスニペットです:
$(document).ready(function(){
$("#saCreate").validate({
[validation stuff]
},
submitHandler: function(form) {
if (confirm("Are you sure you want to submit?")) {
form.submit();
}
これは希望どおりに機能します。
検索ページには、すべての「開いている」フォームのリストが表示され、フォームを1つ選択すると、新しい動的タブで詳細が開きます。
例えば:
gridSelect = function(satrk) {
var checkName = satrk;
var tabExists = false;
$('#tabs ul li a').each(function(i) {
if($(this).text() == checkName) {
tabExists = true;
}
});
// React to existance:
if(!tabExists){
$("#tabs").tabs("add","details.cfm?satrk="+satrk,satrk);
$("#tabs").tabs("select", satrk); // select tab by index
}else{
$("#tabs").tabs("select", satrk); // select tab by index
}
基本的に、タブが開いている場合はそれを選択するだけですが、そうでない場合は新しいタブを作成し、gridSelectに渡された「id」を名前として使用します。このIDは文字通りdbIDです。
これもうまくいきます。私は今、古いフォームの詳細を含む新しい動的タブを見ています。これは、作成用の同じ古いフォームにすぎませんが、DBからフォームボックスに入力されています。
変更が必要な場合は、変更してから「更新」ボタンを押してください。以前と同じ検証を行い、適切に送信された場合。
これはすべてががらくたに落ちるところです。このフォームは送信せず、私の素敵な動的タブにありがとうを表示しません。このフォームは送信され、古いフォームインターフェイスを上書きする新しいURLでありがとうを表示します。たとえば、blah、blah、blah / update.cfm
私はjQueryにかなり慣れていないので、自分の居場所を見つけるために多くのテスト、検索、試行錯誤を行ってきましたが、基本的な能力に達していないのではないかと心配しています。
更新ページで、更新の確認を使用して動的タブを更新するだけで済みます。
ヘルプ!