чтобы появлялся добавьте 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; } }); });
А так все равно из инпута значение берет. При любом значении в селекте. Мне нужно чтобы при значении селекта «Другое» — появлялся инпут для ввода этого самого своего значения. Значит и отправляться он должен. Иначе — отправляются значения из селекта и инпут не появляется))
Даже вот так попробуй проще $(document).ready(function() { var $select = $('#select'); var $custom = $('#custom'); var $customValue = 'Другое';
$select.on('change', function() {
if ( ($this).val() == $customValue) && ($custom.val() != '') ) {
$(this).val() = $custom.val();
}
});
});
Да, это я так и делаю. Помимо всего еще один скрытый, в него нужно передать значение перед отправкой?
А подскажите как? Что-то я не соображу.
input другой не твой custom, еще один скрытый
Принимай значение не selecta а inputa а при смене подставляй в этот интуп что хочешь
А в таком случае если выбрано в селекте не «Другое», то есть должно отправляться значение из селекта, приходит пустое значение.
Правильно вы же элементу $custom подставляете значение if ($select.val() == customValue) { $element = $custom; } а нужно $select