2011-10-27 134 views
0

我有元素列表,当我从列表中选择元素时,代码波纹管中的“值”正在改变。当我从列表中选择元素时,使用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();} 

但这并不动态地工作。我该如何处理这个事件,然后更改值从“水木清华”到“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事件,甚至可以[预过滤AJAX调用](http:// api。 jquery.com/jQuery.ajaxPrefilter/)。真的,说“这不能做_”是大多数时候低估可能的解决方案的结果。 – Tadeck

+0

是的我可以使用之前的提交,我从元素列表中选择 –