Может в форме чего я не та прописал? <div class="form-group [[!+error.firma:notempty=`has-error`]]"> <label for="firma" class="col-lg-4 control-label">Фирма</label> <div class="col-lg-8"> <select id="select" name="firma" class="form-control"> <option value="[[!+firma]]">Выберите фирму...</option> <option value="Sony" [[!+fi.firma:FormItIsSelected=Sony]]>Sony</option> <option value="BBK" [[!+fi.firma:FormItIsSelected=BBK]]>BBK</option> <option value="Oursson" [[!+fi.firma:FormItIsSelected=Oursson]]>Oursson</option> <option value="Toshiba" [[!+fi.firma:FormItIsSelected=Toshiba]]>Toshiba</option> <option value="Другое" [[!+fi.firma:FormItIsSelected=Другое]]>Другое</option> </select> <input type="text" value="[[!+firma]]" class="form-control" id="custom" placeholder="Введите свое значение" name="firma"> </div> </div>

последний бери в этом да может только input

$(document).ready(function() { var $select = $('#select'); var $custom = $('#custom'); var $customValue = 'Другое';

$select.on('change', function() {
 $name =  $(this).val();
   if  ($(this).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; } }); }); В этом коде в плане отображения/скрытия инпута все ОК. Но отправляет только из инпута значение. Здесь нужен скрытый инпут или все работает в связке select/input type «text»

$(document).ready(function() { var $select = $('#select'), $custom = $('#custom'), $customValue = 'Другое', $name = $('#select').val();

$select.on('change', function() {
   if  ($name == $customValue) {
     $('#custom').show();
    }

else { $('#custom').hide(); } });

$('#form').on('submit', function() { if ( ($select.val() == $customValue) && ($custom.val() != '') ) { $select.val() = $custom.val(); } else{ $select.val() = $name; } }); });

$(document).ready(function() { var $select = $('#select'); var $custom = $('#custom'); var $customValue = 'Другое';

$select.on('change', function() {
 $name =  $(this).val();
   if  ($this).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; } }); });

чтобы появлялся добавьте show, а изначально спрячьте

$(document).ready(function() { var $select = $('#select'); var $custom = $('#custom'); var $customValue = 'Другое';

$select.on('change', function() {

$name = $(this).val(); if ( ($this).val() == $customValue) && ($custom.val() != '') ) { $(this).val() = $custom.val(); } else { $(this).val() = $name; } }); });

А так все равно из инпута значение берет. При любом значении в селекте. Мне нужно чтобы при значении селекта «Другое» — появлялся инпут для ввода этого самого своего значения. Значит и отправляться он должен. Иначе — отправляются значения из селекта и инпут не появляется))