В Rails 3 формы возникает вопрос: как создать «select» с опцией «Add New ...»? - PullRequest
3 голосов
/ 12 декабря 2010

Я хотел бы создать коробку select с уже существующими брендами (например, Sony, Panasonic и т. Д.).Кроме того, я хотел бы иметь параметр Add New Brand, чтобы при нажатии пользователем этого параметра появлялось новое текстовое поле.

Есть ли в Rails 3 вспомогательные методы, которые делают это, или мне нужнореализовать это сам, используя Javascript?

Ответы [ 2 ]

6 голосов
/ 12 декабря 2010

Насколько мне известно, такого вспомогательного метода не существует.

Вот как я бы это сделал в JS:

document.getElementById('someSelectBox').onchange = function() {
    if(this.selectedIndex != this.options.length -1) return;
    var new_name = prompt('Please enter a name');
    if(!new_name.length) return;
    var textbox = document.createElement('input');
    textbox.value = new_name;
    this.parentNode.appendChild(textbox); //parentNode is presumably the form
}

Рабочий пример: http://jsfiddle.net/tCBqA/

2 голосов
/ 12 декабря 2010

Оформить заказ на следующие видеоролики @ RailsCasts.com. Райан Бейтс объясняет, как создать вложенную форму, а затем использовать jQuery или Prototype для динамического добавления и удаления полей. Это не идеальный вариант для вашего вопроса, но он должен направить вас в правильном направлении. Если вы получили какой-то код, который работает хорошо, рассмотрите возможность опубликовать его по этому вопросу, чтобы все могли его увидеть.

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...