Как заполнить поле на основе выбора в предыдущем поле?

StackOverflow https://stackoverflow.com/questions/1431332

Вопрос

В форме, которую мы разработали, у нас есть "Состояния" поле, которое позволяет пользователям выбирать несколько состояний одновременно. Существует "Город" поле, которое должно быть заполнено в соответствии с выбором в поле «State» поле. Значения в " Городе " поля заполнены правильно, если выбрано только одно состояние. Однако он не отображается правильно, когда выбрано несколько состояний.

Пожалуйста, предложите решение Ruby для того же.

Это было полезно?

Решение

Проблема в выражении : with в поле наблюдаемое . document.getElementById ('usa_states _'). value будет возвращать только одно значение, а не все выбранные значения.

Я не уверен, есть ли способ обработать это автоматически в Rails, но одним из решений является написание функции JavaScript, которая будет строить строку из всех выбранных значений, разделенных запятыми. например.

function selectedValuesAsString(multiselect) {
    selectedValues = new Array();
    for (i = 0; i < multiselect.length; i++) {
        if (multiselect[i].selected) {
            selectedValues.push(multiselect[i].value);
        }
    }
    return selectedValues.join();
}

, а затем обновите : с помощью что-то вроде:

:with => "'state='+selectedValuesAsString(document.getElementById('usa_states_')"

и, наконец, разделите значения внутри действия вашего контроллера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top