Try:
Code:
<script type="text/javascript">
var cDrop = function(el){
var parentTarget = document.getElementById(el);
if(!parentTarget){
alert("No such element with id!");
return false;
}
var target = document.getElementById("custom");
if(!target || target.parentNode.id != el){
alert("No option tag with id of 'custom'");
return false;
}
parentTarget.onchange = function(){
if(this.options[this.selectedIndex].id == "custom"){
var el = document.createElement("input");
el.type = "text";
el.name = "customtext";
el.value = "";
var submit = document.createElement("input");
submit.type = "button";
submit.value = "+";
var cancel = document.createElement("input");
cancel.type = "button";
cancel.value = "cancel";
cancel.onclick = function(){
document.body.removeChild(submit);
document.body.removeChild(el);
document.body.removeChild(cancel);
parentTarget.style.display = "block";
parentTarget.selectedIndex = 0;
};
submit.onclick = function(){
var opt = document.createElement("option");
var text = document.createTextNode(el.value);
opt.value = el.value;
opt.appendChild(text);
parentTarget.insertBefore(opt, target);
parentTarget.selectedIndex = opt.index;
document.body.removeChild(submit);
document.body.removeChild(el);
document.body.removeChild(cancel);
parentTarget.style.display = "block";
};
parentTarget.style.display = "none";
document.body.insertBefore(el, parentTarget.nextSibling);
document.body.insertBefore(submit, el.nextSibling);
document.body.insertBefore(cancel, submit.nextSibling);
}
};
};
</script>
<select name="options" id="options">
<option value="1">Dog1</option>
<option value="2">Dog2</option>
<option value="3">Dog3</option>
<option value="4">Dog4</option>
<option value="5">Dog5</option>
<option value="6">Dog6</option>
<option value="7" id="custom">Custom</option>
</select>
<script type="text/javascript">
cDrop("options");
</script>
Bookmarks