2010-01-09 116 views
0

现在我正在寻找解决方案,如何使下拉选择表单,将有差异响应相应的选择...
例如,我做了一个下拉选择器的职业...

当我选择信息技术时,它会显示另一个选择器,它只在用户选择信息技术时才显示...该弹出选择器允许我们选择与网页设计等相关的所有内容...

我可以知道如何用导轨做到这一点?表单选择选项,并响应相应的另一个表单选择器

回答

1

我会在这里使用某种DHTML解决方案。你实际上并不依赖于Rails的解决方案。

假设您有两类职业是“IT Stuff”和“Flower Arranging”。每个人都有一个子类别。

在您的视图(xxx.erb.html)形式将是这个样子:

<form> 

    <select name="profession" onChange="makeVisible(this.options[selectedIndex].value);"> 
    <option value="itstuff">IT Stuff</option> 
    <option value="flowerarranging">Flower Arranging</option> 
    </select> 
    <div id="itstuff" style="display:none" > 
    <!-- Here is where you put the <select> for the sub-categories of IT Stuff --> 
    <select name="itsub"> 
     <option value="WindowsAdmin">Windows</option> 
     <option value="NeXTStepAdmin">NeXT</option> 
    </select> 
    </div> 

    <div id="flowerarranging" style="display:none"> 
    <!-- Here is where you put the <select> for the sub-categories of IT Stuff --> 

    <select name="flowersub"> 
     <option value="roses">Roses</option> 
     <option value="daisies">Daisies</option> 
    </select> 
    </div> 
    <input type="submit" value="Submit Profession INfo" /> 
</form> 

<script> 
    function makeAllInvisible() { 
    document.getElementById('itstuff').style.display='none'; 
    document.getElementById('flowerarranging').style.display='none'; 
    } 
    function makeVisible(id) { 
    makeAllInvisible(); 
    document.getElementById(id).style.display='block'; 
    } 
</script> 

一旦你的,你的表单处理程序将需要能够处理所有的输入形式,包括隐形部分的形式。在Rails中,这意味着您将必须处理params [:profession],params [:itsub]和params [:flowersub],以获取此表单的所有提交内容。

请小心使用Rails窗体帮助器。我还没有在Rails form_for helpers中为选择标签找到一个好的Rails表单标签。我通常手工编码。

+0

似乎你是目前最好的方式...因为我没有找到任何更好的解决方案与轨道〜反正 - 谢谢你^。^ – 1myb 2010-01-11 05:37:54

相关问题