2012-08-02 129 views
0

我试图设置这个,以便当用户更改'hier_start'时,页面被刷新,并且下拉列表被预先选择了刚做出的选择。Javascript下拉菜单 - 当选择改变时刷新

<form name='categories' id="categories"> 
<div class="row"> 
    <select name="hier_start" onchange="javascript: NextCat('A', this.value)"> 
    <option value="0" parent="0">Select...</option> 
    [% FOREACH hier_start IN categories.keys %] 
    <option value="[% hier_start %]">[% hier_start %]</option> 
    [% END %] 
    </select> 
    <select name="hier_A" style="display:none" onchange="javascript: NextCat('B', this.value)"> 
    <option value="0" parent="0">Select...</option> 
    </select> 
    <select name="hier_B" style="display:none" onchange="javascript: NextCat('C', this.value)"> 
    <option value="0" parent="0">Select...</option> 
    </select> 
    <select name="hier_C" style="display:none" onchange="javascript: NextCat('D', this.value)"> 
    <option value="0" parent="0">Select...</option> 
    </select> 
    <select name="hier_D" style="display:none"> 
    <option value="0" parent="0">Select...</option> 
    </select> 

</div> 
+0

你使用了什么样的模板语言/模式? '[%FOREACH hier_start IN categories.keys%]' – 2012-08-02 15:04:30

回答

2

的onchange属性应只包含要执行的操作:

<select name="hier_start" onchange="javascript: NextCat('A', this.value)"> 

应该

<select name="hier_start" onchange="NextCat('A', this.value)"> 

我没有看到任何细节,你的方法刷新页面,所以我无法提供任何关于此的信息,除非您可能根本不需要刷新页面。

+0

感谢您的回答 - 然而,刷新的原因是因为hier_A需要在选择不同的hier_Start时被清除......并且它看起来像一个简单的刷新将做到这一点。 – alpswd 2012-08-02 15:20:45

+0

“清除”是什么意思?你需要抛弃所有的选项儿童元素? – 2012-08-02 15:33:44

+0

其实我最初的帖子是不正确的。它不需要重新加载预选的值,只需清除所有下拉菜单即可刷新。是的,折腾所有元素的所有选项 – alpswd 2012-08-02 17:07:43

0

您需要使用服务器端语言(PHP,ASP等)或Cookie来发送值。有可能通过替换html而不刷新页面来实现它(我不建议这样做),但是当页面加载原始的.html文件后再次重新加载时,这会消失。

+0

其实我最初的帖子是不正确的。它不需要重新加载预选的值,只需清除所有下拉菜单即可刷新。 – alpswd 2012-08-02 17:07:16

+0

然后你可以把你正在调用的JavaScript函数的东西。对于此选择框'code' 'code'您将在javascript函数中具有类似'code' document.getElementById(”hier_A“)。selectedIndex =”None“; '代码'这将使它回到默认值。 – 2012-08-03 08:37:19

相关问题