2011-06-19 13 views
0

iframeの非表示の入力フィールド情報を設定または取得するのに問題があります。iframeの非表示の入力フィールドの値の設定と取得に問題があります

最初のページでは、「送信」ボタンをクリックしてshowBox機能を有効にし、3つのパラメータ、名前、都市、および状態を正常に渡します。 showBoxは、iframeをボックスの上に置き、フォームの操作を行うポップアップボックスを作成します。 3つの非表示の入力フィールドの値を、showBox関数から渡された値で設定する必要があります。ここでshowbox関数のコードがある -

function showBox(name, city, state) 
    { 
    var div = document.createElement('div'); 
    div.style.zIndex = 1; 
    div.id = 'box'; 
    div.style.position = (navigator.userAgent.indexOf('MSIE 6') > -1) ? 'absolute' : 'fixed'; 
    div.style.top = '20px'; 
    div.style.left = (width/2) - (900/2) + 'px'; 
    div.style.height = '500px'; 
    div.style.width = '400px'; 
    div.style.backgroundColor = 'white'; 
    div.style.border = '2px solid silver'; 
    div.style.padding = '20px'; 
    document.body.appendChild(div); 

    alert("Name: " + name + ", City: " + city + ", State: " + state); 

    div.innerHTML = "<iframe id='infopage' src='" + 'info.html' + "' width='100%' height='95%'></iframe>"; 

    // set value of the hidden input fields 
    var myname = $("#infopage #hiddenname").val(name); 
    var mycity = $("#infopage #hiddencity").val(city); 
    var mystate = $("#infopage #hiddenstate").val(state); 

     // check hidden input fields value - which come back blank so far 
    alert("Name from hidden field: " + $("#hiddenname").val() + ", City from hidden field: " + $("#hiddencity").val() + ", State from hidden field: " + $("#hiddenstate").val()); 

    // create close window link 
    var a = document.createElement('a'); 
    a.innerHTML = '<br /><br />Close window'; 
    a.href = 'javascript:void(0)'; 
    a.onclick = function() 
    {  
     document.body.removeChild(document.getElementById('box')); 
    }; 

    div.appendChild(a); 
    } 

パラメータ値が正常showBox関数に渡されてしまったにもかかわらず、私は成功した隠し入力を設定することができませんでしたどのようにいくつかのパラメータと値をフィールド。

一方、ここinfo.htmlためのコードです -

<!DOCTYPE html> 
<html> 
<head> 
    <title>Sample person information</title> 
    <style type="text/css" title="currentStyle">   
     @import "css/core.css"; 
    </style> 
    <script type="text/javascript" language="javascript" src="js/jquery.js"></script> 
    <script type="text/javascript" language="javascript" src="js/jsonreport.js"></script> 
    <script type="text/javascript" src="js/info.js"></script> 
</head> 
<body> 
    <div id="container"> 
     <div class="full_width big" id="testname"> 
       <br /> 
      <!-- (it may take a while to load large files) --> 
     </div> 
     <br /> 

      <input type="text" name="hiddenname" id="hiddenname" value="" /> 
      <input type="hidden" name="hiddencity" id="hiddencity" value="" /> 
      <input type="hidden" name="hiddenstate" id="hiddenstate" value=""/> 
      <input id="submit" type="button" value=" Enter " /> 

     <div id="AjaxDiv"></div> 
    </div> 
</body> 
</html> 

ボタンを「入力」をクリックすると、Ajaxの機能はIFRAMEから隠しフィールドの値を使用して呼び出されますが。どういうわけか、iframeから隠された入力フィールドの値を取得することも難しいです。

+0

はあなたのコードをフォーマットして、可能な場合は、あなたの問題を再現するために不可欠ではない行を削除してください(それが動作するかどうかをテストするために)これであなたの送信ボタンを交換してみてください。 – Johnsyweb

+0

私は自分のコードをFiddleに置いた。コードについてはhttp://jsfiddle.net/qpMHf/4/をご覧ください。何とか私はちょうど設定またはiframeから隠された入力フィールドの値を取得することはできません。 –

答えて

0

あなたがここに投稿したコードと、 showbox()が呼び出されていないことがわかります。 iframeは決して作成されません。

<input id="submit" type="button" onclick="alert(document.getElementById('infopage').src);return false;" value=" Enter " /> 
+0

showbox()は、呼び出し元プログラムのPerson Infoによって呼び出されました。問題はありませんが、showbox関数で3つのパラメータを渡します。次のステートメントを適用する場合 - \t var myiframe = document.getElementById( 'infopage'); \t var frame = myiframe.contentDocument.getElementById( 'hiddenname'); \t \t alert( "my iframe id:" + myiframe.id + "、frame:" + frame); "私のiframe id:infopage、frame:null"を返します。 \t alert($( "#infopage"))コンテンツ()。find( "#hiddenname")val( "Frank")); - "[オブジェクトオブジェクト]"を返す –

+0

質問を編集してこのコードを追加できますか? あなたは答えを得るチャンスが増えます。 – Dementic

+0

index.html http://jsfiddle.net/qpMHf/10/ for code - •\t "iframeでポップアップを作成"リンクをクリックすると、js関数のshowBox(name、city、state)が呼び出され、値を渡しますポップアップ・ボックスが作成されている間に、「hidname」、「hidcity」、および状態値「ca」の値を返します。 •\tボックスの内側には、iframeとtestを含むdivタグがあります。 Html。 •\t問題:次の処理のために、test.htmlの3つの入力フィールドの値を設定するには、showBoxで渡されたデータを使用する必要があります。 iframe内のtest.htmlページのテキスト入力フィールドにアクセスする方法は、 "hiddenname"、 "hiddencity"、および "hiddenstate"に渡すデータを保存することができますか? –

関連する問題