怎么让select下拉列表可以输入数据?就像ie地址栏一样。 http://community.csdn.net/Expert/topic/3256/3256290.xml?temp=.9944879 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jbuilder的combox控件属性是可以设置的 <body onload="comboBox()"><form name=form1><select id="MeizzComboBoxID"> <option>combo box</option> <option value="11">疏影横斜水清浅</option> <option value="22">暗香浮动月黄昏</option> <option value="33">梅须逊雪三分白</option> <option value="44">雪却输梅一段香</option> <option value="55">梅花香自苦寒来</option></select></form><SCRIPT LANGUAGE="JavaScript"><!--function comboBox(){ combox = new MeizzComboBox();}function MeizzComboBox(){ //作者: meizz(梅花雪) [email protected] this.object = getObjectById("MeizzComboBoxID"); this.input = document.createElement("input"); this.div = document.createElement("div"); document.body.appendChild(this.input); document.body.appendChild(this.div); this.SS = this.object.style; this.IS = this.input.style; this.DS = this.div.style; this.IS.fontSize = this.SS.fontSize = this.DS.fontSize = "12px"; this.IS.position = this.SS.position = this.DS.position = "absolute"; this.top = getObjectTop(this.object); this.left = getObjectLeft(this.object); this.width = this.object.clientWidth; this.height = this.object.clientHeight; this.DS.border = "1px solid #000000"; this.DS.display = "none"; this.DS.color = "#000000"; this.DS.overflow = "auto"; this.DS.overflowX = "hidden"; this.DS.padding = "2 0 8 0"; this.IS.cursor = "default"; this.IS.borderRight = "0px"; this.DS.backgroundColor = "#FFFFFF"; this.IS.top = this.top; this.DS.top = this.top + this.height; this.IS.left = this.DS.left = this.left; this.IS.width = this.width-18; this.DS.width = this.width; this.SS.clip = "rect(0 "+ this.width +" "+ this.height +" "+ this.IS.width +")"; this.inputIndex = this.object.selectedIndex; this.input.value = this.object.options[this.object.selectedIndex].text; this.inputValue = this.object.options[this.object.selectedIndex].value; this.candidateValue = ""; //候选条目的选中项的 value this.candidateText = ""; //候选条目的选中项的 text this.candidateFocus = null; //候选项的当前焦点项 this.divIndex = -1; //候选项的当前焦点项的索引值 this.clientInput = ""; //该变量用来记录用户的输入内容 this.candidateSelect = false; //判断当前是否正在选择候选 this.candidateHeight = 118; //候选条显示的高度值 this.object.onchange = comboxSelectChange; this.object.onclick = comboxSelectChange; this.input.onblur = comboxInputBlur; this.input.onkeydown = comboxInputKeyDown; this.div.onscroll = comboxDivScrolling; this.div.onmousedown = comboxDivScrolling; this.div.onblur = comboxDivHidden;} var combox;function comboxDivScrolling(){combox.candidateSelect= true;}function String.prototype.Trim() {return this.replace(/(^\s*)|(\s*$)/g,"");}function getObjectById(id){ if (arguments.length == 0) return null; /*@cc_on @*/ /*@if (@_jscript_version>=3) return document.all(id); @end @*/ try{return document.getElementById(id);} catch(e){return eval(id);}}function getObjectLeft(e){ var l=e.offsetLeft; while(e=e.offsetParent) l += e.offsetLeft; return l;}function getObjectTop(e){ var t=e.offsetTop; while(e=e.offsetParent) t += e.offsetTop; return t;}function setComboxClip(){ combox.width = combox.object.clientWidth; combox.IS.width = combox.width-18; combox.DS.width = combox.width; combox.SS.clip = "rect(0 "+ combox.width +" "+ combox.height +" "+ combox.IS.width +")"; combox.SS.left = combox.left + 1; //这个变态 select 的 clip 属性, 一定要 select 重载才发生作用 setTimeout("combox.SS.left = combox.left;");}function comboxSelectChange(){ combox.inputIndex = combox.object.selectedIndex; combox.input.value = combox.object.options[combox.object.selectedIndex].text; combox.inputValue = combox.object.options[combox.object.selectedIndex].value; combox.input.select();}function comboxInputBlur(){ var a = combox.object.options, bb=true; for(var i=0; i<a.length; i++) { if(combox.input.value.Trim() == a[i].text){bb = false; break;} } if(combox.input.value.Trim() != "" && bb && !combox.candidateSelect) { combox.inputValue = combox.clientInput; combox.inputIndex = a.length; a.add(new Option(combox.clientInput, combox.clientInput)); combox.object.options[combox.inputIndex].selected = true; setTimeout("setComboxClip()"); } if(!combox.candidateSelect) comboxDivHidden();} function comboxDivMouseover(obj){ var e = obj ? obj : window.event.srcElement; e.style.background = "highlight"; e.style.color = "highlighttext"; combox.candidateSelect= true; for(var i=0; i<combox.div.children.length; i++) if(combox.div.children[i] == e) combox.divIndex = i; combox.candidateFocus = e; combox.inputIndex = parseInt(e.id.substr(17)); combox.candidateText = combox.object.options[combox.inputIndex].text; combox.candidateValue = combox.object.options[combox.inputIndex].value;}function comboxDivMouseout(obj){ var e = obj ? obj : window.event.srcElement; e.style.background = "#FFFFFF"; e.style.color = "#000000"; combox.candidateSelect = false; combox.candidateFocus = null; combox.candidateValue = ""; combox.candidateText = "";}function comboxDivClick(){ if(combox.candidateSelect) { combox.input.value = combox.candidateText; combox.inputValue = combox.candidateValue; combox.object.options[combox.inputIndex].selected = true; combox.input.select(); comboxDivHidden(); }}function comboxDivHidden(){ for(var i=combox.div.children.length-1; i>=0; i--) combox.div.removeChild(combox.div.children[i]); combox.candidateSelect = false; combox.candidateFocus = null; combox.candidateValue = ""; combox.candidateText = ""; combox.divIndex = -1; combox.DS.height = 0; combox.DS.display = "none";}function comboxInputKeyDown(){ switch(window.event.keyCode) { case 40 : comboxDivArrow(40); break; case 38 : comboxDivArrow(38); break; case 13 : comboxDivClick(combox.candidateFocus); break; default : setTimeout("combox.clientInput=combox.input.value; comboxDivChildren()"); break; }}function comboxDivChildren(){ var s = combox.input.value, d = null, a = combox.object.options; var divstyle = "font-size: 12px; padding: 2 1 0 2; color: #000000; cursor: default"; var sameness = false; comboxDivHidden(); if(s != "") { for(var i=0; i<a.length; i++) { if(a[i].text.Trim().indexOf(s) == 0) { if(a[i].text.Trim() == s) sameness = true; d = document.createElement("div"); d.style.cssText = divstyle; d.id = "comboxDivChildren"+ i; d.innerText = a[i].text; d.onclick = comboxDivClick; d.onmouseover = comboxDivMouseover; d.onmouseout = comboxDivMouseout; combox.div.appendChild(d); d = null; } } if(combox.div.children.length > 0 && !(sameness && combox.div.children.length==1)) combox.DS.display = ""; if(combox.div.clientHeight > combox.candidateHeight) combox.DS.height = combox.candidateHeight; }}function comboxDivArrow(num){ var a = combox.div.children; if(a.length == 0) return; if(combox.candidateFocus != null) comboxDivMouseout(combox.candidateFocus); if(num == 40) //住下翻选候选项 { if(combox.divIndex < 0) combox.divIndex = 0; else if(combox.divIndex == (a.length-1)) { combox.input.value = combox.clientInput; combox.divIndex = -1; } else combox.divIndex++; } else { if(combox.divIndex < 0) combox.divIndex = a.length-1; else if(combox.divIndex == 0) { combox.input.value = combox.clientInput; combox.divIndex = -1; } else combox.divIndex--; } if(combox.divIndex >= 0) { combox.candidateSelect = true; combox.candidateFocus = a[combox.divIndex]; combox.inputIndex = parseInt(combox.candidateFocus.id.substr(17)); combox.input.value = combox.candidateText = combox.object.options[combox.inputIndex].text; combox.inputValue = combox.object.options[combox.inputIndex].value; combox.candidateFocus.style.background = "highlight"; combox.candidateFocus.style.color = "highlighttext"; }}//--></SCRIPT> 怎么实现这个功能? 求大大指教 FCK问题,怪了。。。。 剩下最后一个问题未解决了,望前辈指点 求一个算剩余天数的例子! 请教大虾们关于数据库连接的问题 关于json的错误,不知道问题出在什么地方了啊 zTree怎么判断树有节点展开或者完全关闭的 应该是REFRENCE的问题,请高手指点! Jbuilder 6 开发过程中常见问题请教 java程序无法运行 留言版可控留言的问题 请问为什么总会有这种错误???在线等!!
<form name=form1>
<select id="MeizzComboBoxID">
<option>combo box</option>
<option value="11">疏影横斜水清浅</option>
<option value="22">暗香浮动月黄昏</option>
<option value="33">梅须逊雪三分白</option>
<option value="44">雪却输梅一段香</option>
<option value="55">梅花香自苦寒来</option>
</select>
</form>
<SCRIPT LANGUAGE="JavaScript"><!--
function comboBox()
{
combox = new MeizzComboBox();
}
function MeizzComboBox()
{ //作者: meizz(梅花雪) [email protected]
this.object = getObjectById("MeizzComboBoxID");
this.input = document.createElement("input");
this.div = document.createElement("div");
document.body.appendChild(this.input);
document.body.appendChild(this.div);
this.SS = this.object.style;
this.IS = this.input.style;
this.DS = this.div.style; this.IS.fontSize = this.SS.fontSize = this.DS.fontSize = "12px";
this.IS.position = this.SS.position = this.DS.position = "absolute";
this.top = getObjectTop(this.object);
this.left = getObjectLeft(this.object);
this.width = this.object.clientWidth;
this.height = this.object.clientHeight;
this.DS.border = "1px solid #000000";
this.DS.display = "none";
this.DS.color = "#000000";
this.DS.overflow = "auto";
this.DS.overflowX = "hidden";
this.DS.padding = "2 0 8 0";
this.IS.cursor = "default";
this.IS.borderRight = "0px";
this.DS.backgroundColor = "#FFFFFF"; this.IS.top = this.top;
this.DS.top = this.top + this.height;
this.IS.left = this.DS.left = this.left;
this.IS.width = this.width-18;
this.DS.width = this.width;
this.SS.clip = "rect(0 "+ this.width +" "+ this.height +" "+ this.IS.width +")"; this.inputIndex = this.object.selectedIndex;
this.input.value = this.object.options[this.object.selectedIndex].text;
this.inputValue = this.object.options[this.object.selectedIndex].value; this.candidateValue = ""; //候选条目的选中项的 value
this.candidateText = ""; //候选条目的选中项的 text
this.candidateFocus = null; //候选项的当前焦点项
this.divIndex = -1; //候选项的当前焦点项的索引值
this.clientInput = ""; //该变量用来记录用户的输入内容
this.candidateSelect = false; //判断当前是否正在选择候选
this.candidateHeight = 118; //候选条显示的高度值 this.object.onchange = comboxSelectChange;
this.object.onclick = comboxSelectChange;
this.input.onblur = comboxInputBlur;
this.input.onkeydown = comboxInputKeyDown;
this.div.onscroll = comboxDivScrolling;
this.div.onmousedown = comboxDivScrolling;
this.div.onblur = comboxDivHidden;
} var combox;
function comboxDivScrolling(){combox.candidateSelect= true;}
function String.prototype.Trim() {return this.replace(/(^\s*)|(\s*$)/g,"");}
function getObjectById(id)
{
if (arguments.length == 0) return null;
/*@cc_on @*/ /*@if (@_jscript_version>=3) return document.all(id); @end @*/
try{return document.getElementById(id);}
catch(e){return eval(id);}
}
function getObjectLeft(e)
{
var l=e.offsetLeft; while(e=e.offsetParent) l += e.offsetLeft; return l;
}
function getObjectTop(e)
{
var t=e.offsetTop; while(e=e.offsetParent) t += e.offsetTop; return t;
}
function setComboxClip()
{
combox.width = combox.object.clientWidth;
combox.IS.width = combox.width-18;
combox.DS.width = combox.width;
combox.SS.clip = "rect(0 "+ combox.width +" "+ combox.height +" "+ combox.IS.width +")";
combox.SS.left = combox.left + 1; //这个变态 select 的 clip 属性, 一定要 select 重载才发生作用
setTimeout("combox.SS.left = combox.left;");
}
function comboxSelectChange()
{
combox.inputIndex = combox.object.selectedIndex;
combox.input.value = combox.object.options[combox.object.selectedIndex].text;
combox.inputValue = combox.object.options[combox.object.selectedIndex].value;
combox.input.select();
}
function comboxInputBlur()
{
var a = combox.object.options, bb=true;
for(var i=0; i<a.length; i++)
{
if(combox.input.value.Trim() == a[i].text){bb = false; break;}
}
if(combox.input.value.Trim() != "" && bb && !combox.candidateSelect)
{
combox.inputValue = combox.clientInput;
combox.inputIndex = a.length;
a.add(new Option(combox.clientInput, combox.clientInput));
combox.object.options[combox.inputIndex].selected = true;
setTimeout("setComboxClip()");
}
if(!combox.candidateSelect) comboxDivHidden();
}
{
var e = obj ? obj : window.event.srcElement;
e.style.background = "highlight";
e.style.color = "highlighttext";
combox.candidateSelect= true;
for(var i=0; i<combox.div.children.length; i++)
if(combox.div.children[i] == e) combox.divIndex = i;
combox.candidateFocus = e;
combox.inputIndex = parseInt(e.id.substr(17));
combox.candidateText = combox.object.options[combox.inputIndex].text;
combox.candidateValue = combox.object.options[combox.inputIndex].value;
}
function comboxDivMouseout(obj)
{
var e = obj ? obj : window.event.srcElement;
e.style.background = "#FFFFFF";
e.style.color = "#000000";
combox.candidateSelect = false;
combox.candidateFocus = null;
combox.candidateValue = "";
combox.candidateText = "";
}
function comboxDivClick()
{
if(combox.candidateSelect)
{
combox.input.value = combox.candidateText;
combox.inputValue = combox.candidateValue;
combox.object.options[combox.inputIndex].selected = true;
combox.input.select();
comboxDivHidden();
}
}
function comboxDivHidden()
{
for(var i=combox.div.children.length-1; i>=0; i--)
combox.div.removeChild(combox.div.children[i]);
combox.candidateSelect = false;
combox.candidateFocus = null;
combox.candidateValue = "";
combox.candidateText = "";
combox.divIndex = -1;
combox.DS.height = 0;
combox.DS.display = "none";
}
function comboxInputKeyDown()
{
switch(window.event.keyCode)
{
case 40 : comboxDivArrow(40); break;
case 38 : comboxDivArrow(38); break;
case 13 : comboxDivClick(combox.candidateFocus); break;
default : setTimeout("combox.clientInput=combox.input.value; comboxDivChildren()"); break;
}
}
function comboxDivChildren()
{
var s = combox.input.value, d = null, a = combox.object.options;
var divstyle = "font-size: 12px; padding: 2 1 0 2; color: #000000; cursor: default";
var sameness = false;
comboxDivHidden();
if(s != "")
{
for(var i=0; i<a.length; i++)
{
if(a[i].text.Trim().indexOf(s) == 0)
{
if(a[i].text.Trim() == s) sameness = true; d = document.createElement("div");
d.style.cssText = divstyle;
d.id = "comboxDivChildren"+ i;
d.innerText = a[i].text;
d.onclick = comboxDivClick;
d.onmouseover = comboxDivMouseover;
d.onmouseout = comboxDivMouseout;
combox.div.appendChild(d);
d = null;
}
}
if(combox.div.children.length > 0 && !(sameness && combox.div.children.length==1))
combox.DS.display = "";
if(combox.div.clientHeight > combox.candidateHeight) combox.DS.height = combox.candidateHeight;
}
}
function comboxDivArrow(num)
{
var a = combox.div.children;
if(a.length == 0) return;
if(combox.candidateFocus != null) comboxDivMouseout(combox.candidateFocus);
if(num == 40) //住下翻选候选项
{
if(combox.divIndex < 0) combox.divIndex = 0;
else if(combox.divIndex == (a.length-1))
{
combox.input.value = combox.clientInput;
combox.divIndex = -1;
}
else combox.divIndex++;
}
else
{
if(combox.divIndex < 0) combox.divIndex = a.length-1;
else if(combox.divIndex == 0)
{
combox.input.value = combox.clientInput;
combox.divIndex = -1;
}
else combox.divIndex--;
}
if(combox.divIndex >= 0)
{
combox.candidateSelect = true;
combox.candidateFocus = a[combox.divIndex];
combox.inputIndex = parseInt(combox.candidateFocus.id.substr(17));
combox.input.value = combox.candidateText = combox.object.options[combox.inputIndex].text;
combox.inputValue = combox.object.options[combox.inputIndex].value;
combox.candidateFocus.style.background = "highlight";
combox.candidateFocus.style.color = "highlighttext";
}
}
//--></SCRIPT>