0
的/隐藏DIV的onchange我使用HAML显示下拉菜单
= f.select :contact_type, options_for_select(['String','Email','Phone','Textarea','Boolean', 'Multi Select'],
selected: @contact_object.contact_type), onchange: "showDiv(this, @i)"
- if @contact_object.contact_type == 'Boolean'
%div{:id=>"options_for_boolean_#{@i}"}
%li
=f.label :first_boolean_option do
Field
%span{:class => "item-number"}
[email protected]
First opt.
=f.text_field :first_boolean_option, :placeholder => "Enter First option:"
%li
=f.label :second_boolean_option do
Field
%span{:class => "item-number"}
[email protected]
First opt.
=f.text_field :second_boolean_option, :placeholder => "Enter Second option:"
- if @contact_object.contact_type == 'Multi Select'
%div{:id=>"options_for_multiselect_#{@i}"}
%li
=f.label :multiselect_options do
Field
%span{:class => "item-number"}
[email protected]
Multiselect opt.
=f.text_area :multiselect_options, :placeholder => "Enter all options separated with comma:"
这里@i是迭代值在表格的下拉菜单中的代码。 我在这里要做的是,上面的代码是在一个循环中。每个循环都有一个带有选定值的下拉菜单。当用户选择布尔或多选择选项时,它会向他显示相应的div以获取更多详细信息。所以如果用户选择第二个下拉框的布尔选项,它应该在第二个迭代图层中为布尔值显示div。困惑?这里更简单的解释
drop-down-box1
div1 for boolean
div1 for multi select
drop-down-box2
div2 for boolean
div2 for multi select
drop-down-box3
div3 for boolean
div3 for multi select
*所有div默认为隐藏。如果用户选择“drop-down-box2”的“boolean”,它应该显示“div2 for boolean” 如何操作?
我的jQuery代码到现在是
:javascript
$(document).ready(function() {
function showDiv(changing,numb) {
var sel_val = changing.options[changing.selectedIndex].val();
if (sel_val == 'Boolean') {
$('#options_for_boolean_' + numb).show();
} else if (sel_val == 'Multi Select') {
$('#options_for_multiselect_' + numb).show();
} else {
$('#options_for_boolean_' + numb).hide();
$('#options_for_multiselect_'+ numb).hide();
}
}
});
你可以发布实际输出的HTML吗?我在HAML中不流利 – 2012-08-06 16:48:42
好的,我已经给出了我的问题的更简单的解释,请解决它 http://snipurl.com/24kjkbr 我想要的是,当用户选择第一滴“taffy”应该显示div#for_taffy_1,同样当用户选择第二个下拉框的“太妃糖”时,应该显示div#for_taffy_2,如何在jquery或javascript中做到这一点 *注意:我只给了两组。这是一个循环,所以可以是很多 – 2012-08-06 17:28:04