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

how to hide & disable fields that are dependent upon the value of another field(s) using jQuery

本文关键字:字段 jQuery 依赖于 另一个 使用 何隐藏 隐藏 amp      更新时间:2023-09-26

下面的代码可以工作,但我有以下问题:

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

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

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