下面的代码有效,但我有以下问题:
- 这甚至是获得预期结果的最有效/最优雅的解决方案吗?如果没有,有人可以指出我正确的方向吗?
- 在页面加载时,jQuery 没有读取表单上 MainWidgetName (选择输入)的值......导致在对该字段进行更改之前不会显示任何内容。
- 如何在更改或禁用 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>