2011-01-28 16 views
0

私はJavascript Guruではありません。しかし、アプリケーションの1つでJqueryを書く際には非常にトリッキーな状況に陥っていました。 状況:jqueryでこの特定のケースを解決する方法は?

フィールドが異なるフォームがあります。複数の値を含むフィールドの1つ、たとえば電話番号。私はそれらの数字をポップアップライトボックスに入れています。今私が直面している問題は、フォームボタンをクリックしてフォームを送信したいが、私の番号はポップアップボックスから来ているということです。私は全体の流れをポイントで記述しようとしましょう。 -

  1. フォームには複数のフィールドがあります。 1つのフィールド番号に対して、私はポップアップボックスを表示しています。
  2. 私はフォームに私を送るポップアップボックスのボタンをクリックします。しかし、私はその形式で数字を見つけることができません。
  3. 最終クリックはすべての情報をサーバー側に送信するフォームボタンにあります。

しかし、私はフォーム上で数字の価値を得られません。だから、誰でも私にこの問題を解決する最善の方法を提案できますか?

注:私は質問を明確な方法で入力するように最善を尽くしました。しかし、もし皆さんが私の言葉をはっきりと見つけられなかったら、申し訳ありません!

+0

は、フォームと同じソースのポップアップ/ライトボックスですか?多分私たちのコードを見せてくれる? – Victor

+0

はい、同じソースです。申し訳ありませんが、コードを表示することはできません。それは私のものではないからです。私はクライアントのためにそれを書いています。 – user12345

答えて

0

私があなたの質問を正しく理解している場合は、まず、ポップアップ/ライトボックスを閉じるコントロールを設定して、元のフォームの隠しフィールドを最初に設定します。ライトボックスウィンドウ内のフォーム要素から値をグラブ:

$('#the_lightbox').find('.multiple_phone_fields') 
    .each(function(i,e){ // for each field 
    $('<input name=' + $(this).attr('name') + 'type="hidden"/>') // new, hidden 
     .val(this.value) // set hidden field value from this field 
     .appendTo('#the_main_form'); // and add to the underlying form 
}); 

あなたが#the_main_formを送信すると、それらの隠されたフィールドと値が一緒に来るだろう。明らかに、ポップアップウィンドウまたはライトボックスの詳細についてセレクタを調整する必要があります。

1

私は理解して完全にはよく分からないが、私は刺し取るよ:

オプション1).val $(セレクタ)を()を使用して、最初のフォームに戻ってから、ライトボックスのすべての値を書きます。

オプション2)ライトボックスフォーム全体を、最初のフォーム内の隠しdivにコピーします。

1

ポップアップボックスの要素がフォーム外に追加されている可能性があります。そのため、フォームの送信時にポップアップ内の入力要素は送信されません。これを確認するには、Light Inspector(FirebugのFirebugやie8やChromeの開発ツール)を使用して、ライトボックスを含む要素がどこにあるかを確認します(通常はページの最後にあります)。

これを解決するには、フォーム内にdivを追加するようにライトボックスを設定するか、JavaScriptのビットをポップアップで入力要素の値を取得し、実際には提出する前のフォーム。

1

こんにちは、このヘルプを実行します 。そこにポップアップが作成され、データを編集してポップアップを閉じる直前にオープナーが参照するメインページに戻ってポピュレートすることができます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Generator" CONTENT="EditPlus"> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
</HEAD> 
<script type="text/javascript"> 
<!-- 
function fn() { 
var popupwin = window.open("","","width=500,height=300"); 
popupwin.document.open(); 
popupwin.document.write("<html><head><script>function onOk(){opener.parent.document.getElementById('txtnumberfield').value=document.getElementById('txtpopup').value; window.close();}</script></head><body>Here are some popup values <input type='text' value='value from popup' name=txtpopup id=txtpopup />"+ 
"<input type=button onclick='onOk()' value='Done editing' /></body></html>"); 
popupwin.document.close(); 


} 
//--> 
</script> 
<BODY> 
<form action="#"> 
Number <input type="text" id="txtnumberfield" /> <input type="button" value="open popup" onclick="fn();" /><br/> 

<input type="submit" /> 
</form> 
</BODY> 
</HTML> 
関連する問題