0

下面的代码有效,但我有以下问题:

  1. 这甚至是获得预期结果的最有效/最优雅的解决方案吗?如果没有,有人可以指出我正确的方向吗?
  2. 在页面加载时,jQuery 没有读取表单上 MainWidgetName (选择输入)的值......导致在对该字段进行更改之前不会显示任何内容。
  3. 如何在更改或禁用 javascript 时清除值并禁用未使用/未关联字段的选择输入?

jQuery:

<script type="text/javascript">
$(document).ready(function() 
{
  $.viewMap = {
    '0' : $([]),
    '6' : $('#result1'),
    '7' : $('#result2'),
    '8' : $('#result3'),
    '9' : $('#result4'),
    '10': $('#result5'),
    '11': $('#result6')
  };

  $('#mainWidgetName').change(function() 
  {
    // hide all
    $.each($.viewMap, function() {$(this).hide(); });
    // show current
    $.viewMap[$(this).val()].show();
   });
  });
  </script>

HTML:

<table class="simple">
    <?php echo $form['mainWidgetName']->renderRow(); ?>    
    <tr id="result1" style="display:none"><th><?php echo $form[‘widgetName1’]->renderLabel()  ?></th><td><?php echo $form['widgetName1']->render(); ?></td></tr>  
    <tr id="result2" style="display:none"><th><?php echo $form[‘widgetName2’]->renderLabel()  ?></th><td><?php echo $form['widgetName2']->render(); ?>t</td></tr>
    <tr id="result3" style="display:none"><th><?php echo $form[‘widgetName3’]->renderLabel()  ?></th><td><?php echo $form['widgetName3']->render(); ?></td></tr>
    <tr id="result4" style="display:none"><th><?php echo $form[‘widgetName4’]->renderLabel()  ?></th><td><?php echo $form['widgetName4']->render(); ?></td></tr>
    <tr id="result5" style="display:none"><th><?php echo $form[‘widgetName5’]->renderLabel()  ?></th><td><?php echo $form['widgetName5']->render(); ?></td></tr>​
    <tr id="result6" style="display:none"><th><?php echo $form[‘widgetName6’]->renderLabel()  ?></th><td><?php echo $form['widgetName6']->render(); ?></td></tr>​
    <tr><td></td><td><input type="submit" value="Submit" /></td></tr>
</table>
4

1 回答 1

0

我找到了一个很棒的插件,可以达到我想要的结果:

http://www.erichynds.com/jquery/jquery-related-dependent-selects-plugin/

于 2012-09-18T22:23:43.043 回答