Я собрал небольшой скрипт, который может делать то, что вы хотите: 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'));
}
});
});
EDIT Ах, и если это не было ясно - он использует jQuery.Просто измените селектор select
на то, что вам нужно, и вы должны быть настроены.Не составит труда обернуть это в плагин.
РЕДАКТИРОВАТЬ 2 С помощью rails вы, вероятно, сможете сделать что-то подобное (возможно, приятнее в помощнике) для генерации выбора:
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] } << ['Other', 'other'])
Для представления редактирования вы можете просто проверить, содержится ли значение в выбранных значениях, и, если нет, распечатать дополнительное поле ввода и установить для выбора предварительный выбор «других» параметров.,И вы должны обращаться с JS, чтобы соответствовать ситуации.