0

動的な選択ボックス (データベースから取得) を持つフォームがあります。ユーザーがフォームを離れずにその選択ボックスに追加できるようにしたいと考えています。ユーザーが選択ボックスの横にあるリンクをクリックすると、thickbox (またはモーダル ウィンドウ) がポップアップすることをお勧めします。シックボックス ポップアップには、ユーザーが選択ボックスに表示される新しい値を入力できるフォームがあります。ユーザーが [送信] をクリックすると、thickbox (またはモーダル) ポップアップが閉じ、追加先の選択ボックスだけが更新されるため、フォーム上の他のすべてのデータが保持されます。おまけとして、選択ボックスで追加したばかりの値を選択することもできます。

近い例をいくつか見つけましたが、まったく同じものはありません。これに最も近いのは、jquery の AddToList プラグインです: http://pelicansareevil.com/jquery/addtolist - しかし、thickbox スタイルのポップアップは使用しません。

これのシックボックス バージョンが機能するようになりましたが、シックボックスを閉じたときに選択ボックスを自動的に更新できないようです。

4

2 に答える 2

0

主な問題は、ThickBoxが閉じられたときにイベントをキャッチできなかったことだと思います。私の知る限り、ThickBoxは、モーダルウィンドウが閉じられたときに呼び出される関数を渡すことができるコールバックをネイティブにサポートしていません。ただし、thickbox cb_thickboxへのこの追加を試すことができます(これを現在のThickBoxスクリプトに置き換えてください)。ThickBoxプラグインのコールバック関数を追加します。

スクリプトでこの関数を定義するだけです

var TB_callback = function(){alert("Now I can update my combobox!")};
于 2009-12-18T18:10:57.937 に答える
0

以下のコードは、thickbox が閉じられたときに呼び出される関数に挿入されます。また、thickbox を閉じた後にテキスト ボックスをクリアするコードを追加することもできます。

このような2つの入力がある場合...

<input name="newValue" type="text" />
<input name="newName" type="text" />

次に、これを行うことができます...

var newValue = $('input[name="newValue"]').val();
var newName = $('input[name="newName"]').val();

// Removes the selected attribute from your current options
$('#mySelect option:selected').removeAttr("selected");

// Adds a new option with the selected attribute
$('#mySelect').append('<option selected="selected" value="' + newValue + '">' + newName + '</option>');
于 2009-12-18T17:57:18.180 に答える