Как заполнить поле на основе выбора в предыдущем поле?
-
07-07-2019 - |
Вопрос
В форме, которую мы разработали, у нас есть "Состояния" поле, которое позволяет пользователям выбирать несколько состояний одновременно. Существует "Город" поле, которое должно быть заполнено в соответствии с выбором в поле «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_')"
и, наконец, разделите значения внутри действия вашего контроллера.