我有一个带有许多下拉选择框的多页表单。这些框中的大多数需要有一个"Other“字段,然后有一种输入内容的方法,而不是选择值之一。提交表单时,如果选择了"Other“,则应将"other”内容保存到数据库中,而不是下拉菜单。
有没有已经写好的插件或者脚本可以很容易的帮我做到这一点?我的许多字段都是动态创建的,必须在以后进行编辑(使用嵌套形式的jquery插件),所以编写适用于所有字段的代码(而不是为每个字段编写特定的函数)对我来说很困难。
如果我找不到合适的插件,我可能会使用Dojo dijit Combobox,而这正是我正在寻找的,对于我的用户来说,理想的选择框插件应该是一个在下拉列表中有"Other“选项的选择框插件,当"Other”被选中时,会出现一个文本框供用户填写。编辑字段时,还需要根据存储在数据库中的值相应地填充下拉框或文本框。在javascript/jquery/prototype/other、Rails3插件或gem中是否存在这样的东西?非常感谢!
编辑:如果我找不到有单独文本区域的东西,我很可能会使用FlexBox --但我仍然在寻找一个单独文本区域的解决方案!
发布于 2011-01-22 01:02:33
我拼凑了一个小脚本,它可能会做你想要的:http://jsfiddle.net/nHh3C/肯定仍然可以改进,但我猜你已经明白了。我自己可能会用到这个:D
下面是JS:
$('select').each(function(i, select){
if (!$(select).data('name')) {
$(select).data('name', $(select).attr('name'));
}
$(select).change(function(){
if ($(this).val() == 'other') {
$('<input/>', {
'name' : $(this).attr('name')
}).insertAfter($(this));
$(this).attr('name', '');
} else {
$('input[name='+$(this).data('name')+']').remove();
$(this).attr('name', $(this).data('name'));
}
});
});编辑啊,以防这一点不清楚-它使用jQuery。只需将select选择器更改为您需要的内容,您就应该设置好了。将其封装在一个插件中也不难。
使用rails编辑2你应该能够像这样做(在帮助器中可能更好)来生成select:
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] } << ['Other', 'other'])对于编辑视图,您只需检查该值是否包含在选择值中,如果不包含,则打印一个额外的输入字段,并将选择设置为预先选择“其他”选项。并且您应该处理JS以匹配这种情况。
https://stackoverflow.com/questions/4760704
复制相似问题