Рішення jQuery!
Демо: http://jsfiddle.net/69wP6/2/
Ще одна демонстрація нижче (оновлена!)
Мені потрібно було щось подібне у випадку, коли у мене були деякі фіксовані параметри, і я хотів, щоб ще один варіант редагувався! У цьому випадку я зробив прихований ввід, який перекривав би вибраний параметр, редагувався та використовував jQuery, щоб це все працювало безперебійно.
Я ділюсь скрипкою з усіма вами!
HTML
<div id="billdesc">
<select id="test">
<option class="non" value="option1">Option1</option>
<option class="non" value="option2">Option2</option>
<option class="editable" value="other">Other</option>
</select>
<input class="editOption" style="display:none;"></input>
</div>
CSS
body{
background: blue;
}
#billdesc{
padding-top: 50px;
}
#test{
width: 100%;
height: 30px;
}
option {
height: 30px;
line-height: 30px;
}
.editOption{
width: 90%;
height: 24px;
position: relative;
top: -30px
}
jQuery
var initialText = $('.editable').val();
$('.editOption').val(initialText);
$('#test').change(function(){
var selected = $('option:selected', this).attr('class');
var optionText = $('.editable').text();
if(selected == "editable"){
$('.editOption').show();
$('.editOption').keyup(function(){
var editText = $('.editOption').val();
$('.editable').val(editText);
$('.editable').html(editText);
});
}else{
$('.editOption').hide();
}
});
Редагувати: Додано кілька простих штрихів з розумним дизайном, щоб люди могли чітко бачити, де введення закінчується!
Скрипка JS: http://jsfiddle.net/69wP6/4/