2009-07-05 13 views
6

親ウィンドウからボタンをクリックしたときにJavaScriptを使用して新しいウィンドウ(子ウィンドウ)を開きました。新しいウィンドウ(子)にjqueryでこれを行うことはできますか?値のポップアップウィンドウ

子ウィンドウを閉じている間、私はテキストボックスとボタンがあり、私は、テキストボックスの値を取得し、ユーザーがボタンをクリックしたときに親ウィンドウに渡す必要がある、私はに挿入された更新された値を必要とします(親ウィンドウをリフレッシュせずに)親ウィンドウの値を表示することができます

親ウィンドウにはボタンがあり、クリックされた子ウィンドウが開いています 子ウィンドウにはテキストボックスとボタンがあり、ボタンをクリックすると、子供がデータベースに更新するためのポストを行い、テキストボックスの値を親ウィンドウをリフレッシュし、子ウィンドウを閉じる。

どうすればいいですか?それは簡単なJavaScriptで行うことができますか? jqueryを使用している場合、より多くの利点がありますか? どのように助言してもらえますか?

答えて

14

を定義した場合

* だけでなく、普遍的に私はjQueryのdialog widgetの代わりに、実際、新しいウィンドウを使用することをお勧めしサポート。これにより、同じウィンドウのDOM内の新しい値に簡単にアクセスできます。ウィンドウを閉じるボタンからコールバックするだけで、ダイアログに含まれるDOM要素の値を抽出し、フォームのターゲットDOM要素にコピーします。

$('#popupDialog').dialog({ 
    modal: true, 
    autoOpen: false, 
    buttons: { 
      'Cancel': function() { 
         $(this).dialog('close'); 
        }, 
      'Accept': function() { 
         $('#mainForm input#target').val($(this).find('#widgetName').val()); 
         $(this).dialog('close'); 
        } 
}); 

$('#popupButton').click(function() { 
    $('#popuDialog').dialog('open'); 
}); 


<div id="popupDialog" title="Input a new widget name"> 
    <p> 
    <label for="widgetName">Please input a new widget name:</label> 
    <input type="text" id="widgetName" /> 
    </p> 
</div> 
+0

これは最善の解決策ではない場合がありますが、私はこの経路をポップアップウィンドウの最も古典的な用途に使うことに同意します。私の場合、メインウィンドウにはいくつかのウェブカメラのフィードがあり、ユーザーがポップアウトボタンをクリックすると、新しいウィンドウがポップアウトされます。新しいウィンドウは、クリックしたばかりのウェブカメラフィードです。 6つのフィードすべてについて、新しいウィンドウはソースURLを除いて他の点では同じです。親ウィンドウを持つことで、ほぼ同じ6つのHTMLファイルが不要になります。また、新しいウィンドウとして表示させることで、ユーザーは親ウィンドウを開いていなくても画面上の任意の場所にカムフィードを配置できます。 – Anthony

4

あなたはJSネイティブ* オープナープロパティ(ディスカッションhere)を探していますが、jqueryは必要ありません(ただし、そこにラップできます)。

Windowsの開閉はかなり複雑ですが、ライトボックスやページベースのHTMLベースのダイアログを使用しないでください。 jQueryのダイアログは確かにそれのための道になります。ない基準が

+0

ここでは、ネイティブJSに同意します。既に使用していない限り、jquery UIライブラリの大部分は必要ありません。モーダルはやりすぎです... – ScottE

関連する問題