Как я предполагал, мешает инпут, идущий после select с тем же name. Костыль конечно, но свою задачу решает. Сделал просто удаление инпута перед отправкой формы, все работает как надо. Спасибо за помощь! else{ $('#custom').remove(); $select.val() = $name; }
Так как бы форма то правильная но проблему я вижу в том, что поля идут один за одним с одинаковым name. И приходил последнее значение (пустое).
ну проверь по букварю я не помню формит уже давно не использую
Вот так передаются значения по консоли посмотрел: firma:Oursson firma: В результате пустое значение приходит.
Форма тут — все ли правильно?
Нет проверьте код select в форме на правильность передачи значений FORMIT, кажется там некорректно у вас что то если там верно то пробуйте так $(document).ready(function() { var $select = $('#select'), $custom = $('#custom'), $customValue = 'Другое', $name = $select.val();
$select.on('change', function() {
$name = $select.val(); if ($select.val() == $customValue) { $('#custom').show(); } else { $('#custom').hide(); $name = $select.val(); } });
$('#form').on('submit', function() { if ( ($select.val() == $customValue) && ($custom.val() != '') ) { $select.val() = $custom.val(); } else{ $select.val() = $name; } }); });
Так все работает, опять же в плане скрытия/отображения все ОК. Но при выборе в селекте не «Другое» приходит пустое значение. Это видимо из-за того, что в верстке после селекта присутствует (хоть и скрытый через display:none) input. Он получается с пустым значением и оно и перезаписывает при отправке значение из селекта (вернее, они 2 по порядку уходят — последний пустой.) Возможно, нужно не отображать/скрывать а вобще добавлять элемент, а чтобы при выборе не «Другое» — он удалялся из верстки. Как это сделать?
Я то пишу не проверяю ) поидее так $(document).ready(function() { var $select = $('#select'), $custom = $('#custom'), $customValue = 'Другое', $name = $select.val();
$select.on('change', function() {
if ($select.val() == $customValue) {
$('#custom').show();
}
else { $('#custom').hide(); } });
$('#form').on('submit', function() { if ( ($select.val() == $customValue) && ($custom.val() != '') ) { $select.val() = $custom.val(); } else{ $select.val() = $name; } }); });
А в нем не появляется input…
нет последний код бери Этот...