2011-10-27 8 views
0

要素のリストがあり、リストから要素を選択すると、コードの "value"が変更されます。リストから要素を選択したときにjqueryで動的要素を追加する

<div class="drop-down-cont zi-5 fleft"> 
      <input class="dd-input" id="packaging_item_packaging_name" name="packaging_item[packaging_name]" title="Packaging Type" type="hidden" value="PX"> 
      <a class="drop-down-link item-qnt" href="#" id="packaging_item_packaging_name_link">Pallet</a> 
      <div class="drop-down pic" style="visibility: visible; "> 
      <div class="blue-tarr"></div> 
      <div class="drop-down-list-cont w400"> 
       <div class="drop-down-list first pt-cases w100p" id="cases_results_"><ul class="w100p"> 

<li id="PX" class="selected"> 
    <a href="javascript:void(0)">Pallet</a> 
</li> 
<li id="PB"> 
    <a href="javascript:void(0)">Pallet Box</a> 
</li> 
<li id="PLP"> 
    <a href="javascript:void(0)">Peel pack</a> 
</li> 

</ul> 



</div> 
       <div class="pic-cont h100p"><img alt="Package Image" src="/images/pi_new/32.jpg?1312107854"> </div> 
      </div> 
      <div class="remark"> 
A platform used to hold or transport unit loads. 

</div> 
      <a class="submit-btn2 pt-choose-btn-" href="javascript:void(0)" id="pack_apply">Apply</a> 
      </div> 
     </div> 

<table id="pallet_table" style="display:none;"> 
    <tbody> 
     <tr> 
     <td> 
      stacking factor: 
     </td> 
     <td> 
      <input class="w44" id="packaging_item_stacking_factor" name="packaging_item[stacking_factor]" size="30" type="text" value="1"> 
     </td> 
     </tr> 
    </tbody> 
    </table> 

は、私が「PX」から「値」を選択して、このスクリプトを実行すると、

if ($('.dd-input').attr('value') == 'PX') { 
    $('#pallet_table').show();} 

をテーブルを表示したいが、これはdynamicly動作しません。私は「なめらか」から「PX」これはあなたの問題を解決する必要があり

+0

貼り付けたHTMLのリストが表示されません。どんなイベントをトリガーしますか? –

+0

これは問題ではありません。それは他のファイルからのドロップダウンリストですが、いくつかの要素を選択すると、

+0

@ MikhailAleksandrovi4:これは問題です、あなたは十分に具体的ではありません。イベントをドロップダウンリストにバインドすることができれば、そのようにする方が簡単で洗練されたものになります。 – Tadeck

答えて

0

に値を変更し、このイベントを処理するにはどうすればよい(this jsfiddleを参照してください):

jQuery('.dd-input').bind('change', function(){ 
    if (jQuery(this).val() == 'PX'){ 
     // do here whatever you need 
     $('#pallet_table').show(); 
    } 
}); 

私はしかし、表示されていない、あなたが希望する方法ユーザーがこのフィールドの値を変更する(コード内では、フィールドは非表示になっています)。これが別のスクリプトで行われている場合は、現在の方法が最良の方法ではないかもしれませんし、値が変更されたときにそれを行う代わりに明示的に関数を呼び出す必要がありますか?

+0

このコードはうまく動作します。http://jsfiddle.net/Uur9A/16/ですが、私の考えでは、この解決法は機能しません。私はこのイベントが提出する前に実行する必要があるフォームを持っています –

+0

@ MikhailAleksandrovi4:何かが提出される前にコードを実行する可能性はたくさんあります。あなたは 'submit'イベントを傍受することができます。 jquery.com/jQuery.ajaxPrefilter/)。本当に、「これはできません」と言っているのは、ほとんどの場合、可能な解決策を過小評価した結果です。 – Tadeck

+0

はい以前の投稿を使用することができました。ここでは、要素のリストから選択します –

関連する問題