Редактировать
"... он работает на внешнем интерфейсе, но при отправке формы значение не передается."
Добавлена <form>
, которая будет отправлена на тестовый сервер в режиме реального времени, его ответ будет перенаправлен на <iframe>
, расположенный ниже <form>
.Просмотрите демонстрацию:
Выберите <option>
из <select>
...
... обратите внимание на значение <input>
установлено значение <select>
.
Затем нажмите кнопку Submit ...
...обратите внимание на ответ сервера, напечатанный в <iframe>
ниже:
{
"args": {},
"data": "",
"files": {},
"form": {
"bdm_position": "B"
},
"headers": {...
Этот результат ожидается, если вы выбрали "B"
Не видел, как существовал
$('#position')
до его добавления, поэтому я догадался.Проблема в том, что значение
<select>s
доступно непосредственно для самого тега:
$('select').val()
Демо
var pos = $(`<select id='position'>
<option val='A'>A</option>
<option val='B'>B</option>
<option val='C'>C</option>
<option val='D'>D</option>
</select>`);
pos.appendTo(".form-columns-1");
pos.on('change', function() {
$('input[name=bdm_position]').val($(this).val());
});
<form id='ui' action='https://httpbin.org/post' method='post' target='view'>
<fieldset class='form-columns-1'>
</fieldset>
<input name='bdm_position'><input type='submit'>
</form>
<iframe name='view'></iframe>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>