【发布时间】:2012-04-11 17:16:58
【问题描述】:
我有一个包含许多选择菜单的表单,其中大多数是是/否,并且根据所选选项,我会显示/隐藏一些高级选项。选择菜单之一如下:
<td><%= f.select :CBIAvailable, ['Yes' , 'No'],{}, {:id=>"cbi_available_id", :class=>"cbi_available_class", :onChange=>"showHideOptions('cbi_available_id','cbi_options_id')", :onLoad=>"showHideOptions('cbi_available_id','cbi_options_id')"} %></td>
当我从“是”更改为“否”或相反时,会正确调用 showHideOptions javascript 函数,但是当我重新加载表单时无法调用该函数。
谁能告诉我我做错了什么?
谢谢
更新
<script language="javascript" type="text/javascript">
function showHideOptions(selectorId,optionsId) {
if (document.getElementById) {
var selector = document.getElementById(selectorId);
var options = document.getElementById(optionsId);
if (selector.value == 'Yes') {
options.style.display = 'block';
return false;
} else {
options.style.display = 'none';
return false;
}
}
window.onLoad = showHideOptions('cbi_available_id','cbi_options_id');
【问题讨论】:
-
我不明白。 Onload 在(重新)加载表单时被调用。你期待什么?
-
在我的情况下,:CBIAvailable = 'No',所以我希望 showHideOptions 函数在我重新加载表单时执行,它应该显示“No”的相关选项,但实际上表单重新加载“是”的选项。当我将选择菜单更改为“否”时,它可以正常工作,当我将其更改回“否”时,它也可以正常工作。问题是它没有显示正确的加载选项
标签: javascript forms select onload onchange