2011-06-19 25 views
0

我無法設置或檢索iframe的隱藏輸入字段信息。設置和檢索iframe的隱藏輸入字段的值問題

在初始頁面上,點擊「Submit」按鈕激活showBox功能,併成功傳入名稱,城市,州三個參數。 showBox創建一個彈出框,其中的iframe應該坐在框的頂部並進行表單操作。我需要使用從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

我把我的代碼放在小提琴上。代碼請參閱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函數傳遞三個參數。當應用以下語句 - \t var myiframe = document.getElementById('infopage'); \t var frame = myiframe.contentDocument.getElementById('hiddenname'); (「我的iframe id:」+ myiframe.id +「,frame:」+ frame); - 返回「我的iframe id:infopage,frame:null」 \t alert($(「#infopage」)。contents()。find(「#hiddenname」).val(「Frank」)); - 給回「[object Object]」 –

+0

你能編輯你的問題並將此代碼添加到它嗎? 你將有更多的機會得到答案。 – Dementic

+0

在index.html http://jsfiddle.net/qpMHf/10/代碼 - •\t點擊「用iframe創建我的彈出窗口」鏈接,調用js函數showBox(name,city,state),傳遞值當創建一個彈出框時,「hidname」,「hidcity」和狀態值「ca」。 •\t盒子內部是一個div標籤,包含iframe與測試。 HTML。 •\t問題:需要使用通過showBox傳入的數據來設置test.html上三個輸入字段的值以供進一步處理。如何訪問iframe中test.html頁面的文本輸入字段,以便將傳遞數據存儲到「隱藏名稱」,「隱藏城市」和「隱藏狀態」? –