2017-01-05 23 views
1

フォームを作成し、iframeの内部に入力要素を表示するために使用しているコードがあります。私はIgnite UIを使用しています。私はこれを前提としてこのlinkを使用しました。Javascriptを使用してSpan入力の値を取得する方法

フレーム内のフォームからスパン要素を取得するにはどうすればよいですか。

<html> 
 
<head> 
 
    <script src="http://igniteui.com/js/modernizr.min.js"></script> 
 
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
 
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script> 
 
    <script src="http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.core.js"></script> 
 
    <script src="http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.lob.js"></script> 
 
    <link href="http://cdn-na.infragistics.com/igniteui/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet"></link> 
 
    <link href="http://cdn-na.infragistics.com/igniteui/latest/css/structure/infragistics.css" rel="stylesheet"></link> 
 
    <script> 
 
    $(function() { 
 
     var dsCountry, dsCascTowns, dsCountryCascading, 
 
     dsCountryCascading, dsStatesUSCascading, dsDistrictBGCascading; 
 

 
     dsCountry = [{ 
 
     txtCountry: "3Delta Level 3", 
 
     valCountry: "Ta" 
 
     }, { 
 
     txtCountry: "Account Updater", 
 
     valCountry: "Au" 
 
     }, { 
 
     txtCountry: "DCC", 
 
     valCountry: "Dc" 
 
     }]; 
 

 
     dsCascDistrict = [{ 
 
     keyCountry: "Ta", 
 
     txtDistrict: "ALL", 
 
     valDistrict: "AL" 
 
     }, { 
 
     keyCountry: "Ta", 
 
     txtDistrict: "3336", 
 
     valDistrict: "3336" 
 
     }, { 
 
     keyCountry: "Ta", 
 
     txtDistrict: "6064", 
 
     valDistrict: "6064" 
 
     }, { 
 
     keyCountry: "Ta", 
 
     txtDistrict: "6980", 
 
     valDistrict: "6980" 
 
     }, { 
 
     keyCountry: "Ta", 
 
     txtDistrict: "6081", 
 
     valDistrict: "6081" 
 
     }, { 
 
     keyCountry: "Au", 
 
     txtDistrict: "ALL", 
 
     valDistrict: "AL" 
 
     }, { 
 
     keyCountry: "Au", 
 
     txtDistrict: "3345", 
 
     valDistrict: "3345" 
 
     }, { 
 
     keyCountry: "Au", 
 
     txtDistrict: "3346", 
 
     valDistrict: "3346" 
 
     }, { 
 
     keyCountry: "Au", 
 
     txtDistrict: "6214", 
 
     valDistrict: "6214" 
 
     }, { 
 
     keyCountry: "Dc", 
 
     txtDistrict: "ALL", 
 
     valDistrict: "AL" 
 
     }, { 
 
     keyCountry: "Dc", 
 
     txtDistrict: "40", 
 
     valDistrict: "40" 
 
     }]; 
 

 
     dsCascTowns = [{ 
 
     keyDistrict: "NJ", 
 
     textTown: "Atlantic City", 
 
     valTown: "AtlanticCity" 
 
     }, { 
 
     keyDistrict: "NJ", 
 
     textTown: "Dover", 
 
     valTown: "Dover" 
 
     }, { 
 
     keyDistrict: "CA", 
 
     textTown: "Los Angeles", 
 
     valTown: "LosAngeles" 
 
     }, { 
 
     keyDistrict: "CA", 
 
     textTown: "San Francisco", 
 
     valTown: "San Francisco" 
 
     }, { 
 
     keyDistrict: "CA", 
 
     textTown: "San Diego", 
 
     valTown: "SanDiego" 
 
     }, { 
 
     keyDistrict: "IL", 
 
     textTown: "Chicago", 
 
     valTown: "Chicago" 
 
     }, { 
 
     keyDistrict: "NY", 
 
     textTown: "New York", 
 
     valTown: "NewYork" 
 
     }, { 
 
     keyDistrict: "NY", 
 
     textTown: "Buffalo", 
 
     valTown: "Buffalo" 
 
     }, { 
 
     keyDistrict: "FL", 
 
     textTown: "Miami", 
 
     valTown: " Miami" 
 
     }, { 
 
     keyDistrict: "FL", 
 
     textTown: "Orlando", 
 
     valTown: "Orlando" 
 
     }, { 
 
     keyDistrict: "SA", 
 
     textTown: "Sofia", 
 
     valTown: "Sofia" 
 
     }, { 
 
     keyDistrict: "SA", 
 
     textTown: "Pernik", 
 
     valTown: "Pernik" 
 
     }, { 
 
     keyDistrict: "PV", 
 
     textTown: "Plovdiv", 
 
     valTown: "Plovdiv" 
 
     }, { 
 
     keyDistrict: "PV", 
 
     textTown: "Asenovgrad", 
 
     valTown: "Asenovgrad" 
 
     }, { 
 
     keyDistrict: "V", 
 
     textTown: "Varna", 
 
     valTown: "Varna" 
 
     }, { 
 
     keyDistrict: "V", 
 
     textTown: "Kavarna", 
 
     valTown: "Kavarna" 
 
     }, { 
 
     keyDistrict: "V", 
 
     textTown: "Balchik", 
 
     valTown: "Balchik" 
 
     }, { 
 
     keyDistrict: "Y", 
 
     textTown: "Yambol", 
 
     valTown: "Yambol" 
 
     }, { 
 
     keyDistrict: "Y", 
 
     textTown: "Kermen", 
 
     valTown: "Kermen" 
 
     }, { 
 
     keyDistrict: "Y", 
 
     textTown: "Elhovo", 
 
     valTown: "Elhovo" 
 
     }, { 
 
     keyDistrict: "Y", 
 
     textTown: "Bolyarovo", 
 
     valTown: "Bolqrovo" 
 
     }, ]; 
 

 
     $(function() { 
 

 
     $("#comboCountry").igCombo({ 
 
      textKey: "txtCountry", 
 
      valueKey: "valCountry", 
 
      dataSource: dsCountry, 
 
      selectionChanged: function(evt, ui) { 
 
      var filteredCascDistrict = []; 
 
      if (ui.items && ui.items[0]) { 
 
       var itemData = ui.items[0].data; 
 
       if (itemData.valCountry == "US") { 
 
       $("#state").css("display", "none"); 
 
       $("#district").css("display", "block"); 
 
       } else { 
 
       $("#state").css("display", "none"); 
 
       $("#district").css("display", "block"); 
 
       } 
 

 
       filteredCascDistrict = dsCascDistrict.filter(function(district) { 
 
       return district.keyCountry == itemData.valCountry; 
 
       }); 
 
      } 
 

 
      var $comboDistrict = $("#comboDistrict"); 
 
      $comboDistrict.igCombo("deselectAll", {}, true); 
 
      $comboDistrict.igCombo("option", "dataSource", filteredCascDistrict); 
 
      $comboDistrict.igCombo("dataBind"); 
 

 
      var disableChildCombo = filteredCascDistrict.length == 0; 
 
      $comboDistrict.igCombo("option", "disabled", disableChildCombo); 
 
      }, 
 
      itemsRendered: function(evt, ui) { 
 
      ui.owner.deselectAll(); 
 
      } 
 
     }); 
 

 
     $("#comboDistrict").igCombo({ 
 
      valueKey: "valDistrict", 
 
      textKey: "txtDistrict", 
 
      dataSource: [], 
 
      disabled: true, 
 
      filteringCondition: "startsWith", 
 
      multiSelection: { 
 
      enabled: true 
 
      }, 
 
      selectionChanged: function(evt, ui) { 
 
      var filteredCascTown = []; 
 

 
      if (ui.items && ui.items[0]) { 
 
       var itemData = ui.items[0].data; 
 

 
       var filteredCascTown = dsCascTowns.filter(function(town) { 
 
       return town.keyDistrict == itemData.valDistrict; 
 
       }); 
 
      } 
 

 
      var $comboTown = $("#comboTown"); 
 
      $comboTown.igCombo("deselectAll"); 
 
      $comboTown.igCombo("option", "dataSource", filteredCascTown); 
 
      $comboTown.igCombo("dataBind"); 
 

 
      var disableChildCombo = filteredCascTown.length == 0; 
 
      $comboTown.igCombo("option", "disabled", disableChildCombo); 
 
      } 
 
     }); 
 

 
     $("#comboTown").igCombo({ 
 
      valueKey: "valTown", 
 
      textKey: "textTown", 
 
      disabled: true 
 
     }); 
 
     }); 
 
    }); 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <div class="group-container overHidden" id="before"> 
 
    <IFRAME class="frame" id=iframe1 name="iframe1" style="display: none" src="about:blank"></IFRAME> 
 
    <form method="post" target="iframe1" action="SubmitToSomeFile" id="frm" accept-charset=UTF-8 name="frm"> 
 
     <div class="overHidden"> 
 
     <div class="comboGroup"> 
 
      <div>Product</div> 
 
      <span id="comboCountry"></span> 
 
     </div> 
 
     <div class="comboGroup2"> 
 
      <div id="state"> 
 
      <br /> 
 
      </div> 
 
      <div id="district">ChargeType</div> 
 
      <span id="comboDistrict"></span> 
 
     </div> 
 
     <!-- <div class="comboGroup"> 
 
       <div>Town</div> 
 
       <span id="comboTown"></span> 
 
      </div> --> 
 
     </div> 
 
     <br> 
 
     <br> 
 
     <INPUT type="submit" class="button" name="submit" value="Run" id=button2 onClick="_submit_form();"> 
 
    </form> 
 
    <!-- frame goes here --> 
 
    </div> 
 
    <div id="after" style="width:99%;border:gray 1px solid;display:none;background-color:#ccc;Padding:5px;height:100px;">Thank you</div> 
 
    <!-- Some Content After the form. --> 
 
    <script language="JavaScript"> 
 
    function _submit_form() { 
 
     /* document.getElementById('before').style.display = 'none'; */ 
 
     document.getElementById('after').style.display = 'block'; 
 
     var text1 = $('.comboGroup2 -span').text(); 
 
     /* var text2 = document.getElementById('comboDistrict').text(); \t */ 
 
     document.getElementById("after").innerHTML = "Your Product is " + text1 + " " + "! How are you today?"; /* text2 + */ 
 

 
     return true 
 
    } 
 
    </script> 
 
</body> 
 

 
</html>

助けてください:

は、ここに私のHTMLです。私のフレームには選択した製品が表示されません。

+0

あなたは何を正確に達成しようとしていますか? iframeから要素を含むページに要素を取得しようとしていますか? – mhatch

+0

ドロップダウンで選択範囲をキャプチャし、それを親ページのフォームに隠れた入力に入れるだけのようなサウンドになります。フォーム提出はこの情報を含みます。 – Seano666

+0

ここで紹介したコードでは、iFrame内にフォーム要素はありません。あなたが持っているコードの唯一の問題はセレクタ内に余分な ' - '文字です。これは '$( '。comboGroup2 span')'でなければなりません。スパンにはIDがあるので、 '$( '#comboDistrict')でもかまいませんが、Ignite UIの仕組みはわかりません。 –

答えて

0

あなたがvalueメソッドを使用してigComboから選択された値を取得できます。

var value = $("#state").igCombo("value"); 
$("#after").text("Your Product is " + value + " ! How are you today?"); 

しかし私は、あなたのiframe内の要素が表示されません。

関連する問題