2

コードを書きます。以下のように、「iframe」内にラジオボタンのコンテンツの長いリストを持つフォームを作成しようとしています:

<form name="iframeform" method="POST" action="http://localhost/cgi-bin/run">
    <tr>
            <td><iframe id="macList" src="http://localhost/macinfo" style="width:1000px;height:160px">
            </iframe></td>
    </tr>
    <tr>
            <input type="hidden" name="macaddr" value="">
            <td><input type="submit" name="macselect" value="Continue" id="stdbtn" onclick="getIframeContent()"></td>
    </tr>
</form>

「iframe」は macinfo ページを指しており、次のようなコードがあります。

<html>
<body>
<table>
<tr>
<td><input type=radio name=mac value=E8:B7:48:7B:C0:4A>abc.example.com</td>
</tr>
<tr>
<td><input type=radio name=mac value=00:17:08:5A:81:CF>xyz.cisco.com</td>
</tr>
....
</table>
</body>
</html>

選択したラジオボタンの値を取得する「getIframeContent()」関数を作成するにはどうすればよいですか? 助けてください..

4

2 に答える 2

0

短編小説。iframeにアクセスするには、次のようにdocument使用します。.contentWindow.document

document.getElementById('macList').contentWindow.document

そしてサンプルコード:

<html>
  <head>
    <script type="text/javascript">
      function getIframeContent(){
         var myIFrame = document.getElementById('macList');
         var myIFDoc  = myIFrame.contentWindow.document;
         var myRadios = myIFDoc.getElementsByName("mac");

         var checkedItemValue = "";
         for(var i=0; i<myRadios.length; i++) {
            if (myRadios[i].checked) {
               checkedItemValue = myRadios[i].value;
            }
         }
         if (checkedItemValue) {
            alert(checkedItemValue);
         } else {alert('Select address');}
      }
    </script>
  </head>
<body>

  <iframe id="macList" src="..." 
      style="width:600px;height:160px">
  </iframe>

  <input type="submit" onclick="getIframeContent();">

</body>
</html>
于 2013-02-22T14:25:47.113 に答える
0

macusingの配列を取得し、document.getElementsByNameそれらをループする必要があります。

var allRadios = document.getElementsByName("mac");
var checkedItem; 
for(var i=0; i<allRadios.length; i++) {
     if (allRadios[i].checked) {
          checkedItem = allRadios[i];
          alert('Found checked radio button');
     }
 }

checkedItemその後、関数に渡すことができますgetIframeContent

編集

checkedItemを使用して、2 つのページで変数を共有できます。window

window.checkedItem = allRadios[i];
于 2013-02-22T13:32:04.517 に答える