如何隐藏和使用jQuery禁用依赖于另一个字段值的字段

时间:2012-08-30 20:58:37

标签: php javascript jquery symfony1

以下代码有效,但我遇到以下问题:

  1. 这是获得理想结果的最有效/优雅的解决方案吗?如果没有,有人能指出我正确的方向吗?
  2. 在页面上加载jQuery没有读取表单上的MainWidgetName(一个选择输入)的值...导致在对该字段进行更改之前不显示任何内容。
  3. 如何清除值并在更改时禁用未使用/未关联字段的选择输入,或者是否禁用了javascript?
  4. 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>
    

1 个答案:

答案 0 :(得分:0)

我发现了一个很棒的插件,可以实现我想要的结果:

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