<script>
var timer=null;
function check(uid)
{
var obj=document.all(uid);
if(isNaN(obj.value))obj.value=obj.value.slice(0,-1)
timer=setTimeout("check('"+uid+"')",10);
}
function myclear(){
clearTimeout(timer)
}
function set(i)
{
if(i==1)
document.all.mytext.value++;
else
document.all.mytext.value--;
}
</script>
<form name=form1>
<input name=mytext onfocus=check(this.uniqueID) onblur=myclear()>
<input type=button value="+" onclick=set(1)>
<input type=button value="-" onclick=set(0)>
输入过程中即时检查文本框
</form>
var timer=null;
function check(uid)
{
var obj=document.all(uid);
if(isNaN(obj.value))obj.value=obj.value.slice(0,-1)
timer=setTimeout("check('"+uid+"')",10);
}
function myclear(){
clearTimeout(timer)
}
function set(i)
{
if(i==1)
document.all.mytext.value++;
else
document.all.mytext.value--;
}
</script>
<form name=form1>
<input name=mytext onfocus=check(this.uniqueID) onblur=myclear()>
<input type=button value="+" onclick=set(1)>
<input type=button value="-" onclick=set(0)>
输入过程中即时检查文本框
</form>
.navPoint {
font-size:10px;
cursor:hand;
height:10px;
width:20px;
}
</style><table CELLPADDING='0' CELLSPACING='0'>
<tr>
<td rowspan=2><input type=text value=0 id="spinner"></td>
<td><input type=button class="navPoint" value="+" onClick="spinner.value++"></td>
</tr>
<tr><td><input type=button class="navPoint" value="-" onClick="spinner.value--"></td>
</tr>
</table>
使用示例:
var ns=numberSelector( function(num,unit){status=num+unit;}, "数字:", 100,0,1,{"px","cm","dd"},0);
function numberSelector(onNumberChange,text,defaultNum,max,min,tick,units,defaultUnit){
onNumberChange(defaultNum,units?units[defaultUnit]:null);
var sp=newElement("span",null,null,null," VERTICAL-ALIGN: super;overflow-x:visible;margin:0;padding:0;height:20;border:fuchsia thin groove;cursor:default");
sp.innerHTML=text;
var num_text=newElement("input",null,sp,null,"TEXT-ALIGN:right;margin:0;padding:0;");
var cssUD="padding:0;border:#0000ff 2px outset;right;height:100%;width:10;font-weight:900;font-size:16px;color: #0000ff;cursor:hand"
var down=newElement("span",null,sp,null,cssUD);
var up=newElement("span",null,sp,null,cssUD);
num_text.size=4;
num_text.value=defaultNum;
num_text.ns=sp;
num_text.onkeydown=function(){ NS=event.srcElement.ns; return ( (event.keyCode>47&&event.keyCode<58)||event.keyCode==8);}
num_text.onkeyup=function(){NS.onNumChange(NS.number,NS.unit)}
up.onmousedown=function(){
src=event.srcElement;
NS=src.ns;
var onup=function(){if(NS.number+NS.tick<=NS.max)NS.number+=NS.tick;NS.num_text.value=NS.number;NS.onNumChange(NS.number,NS.unit)};
NS.iID=setInterval(onup,100);
onup();
src.setCapture();
}
up.onmouseup=function(){clearInterval(NS.iID);document.releaseCapture();}
down.onmousedown=function(){
src=event.srcElement;
NS=src.ns;
var ondown=function(){if(NS.number-NS.tick>=NS.min)NS.number-=NS.tick;NS.num_text.value=NS.number;NS.onNumChange(NS.number,NS.unit)};
NS.iID=setInterval(ondown,100);
ondown();
src.setCapture();
}
down.onmouseup=function(){clearInterval(NS.iID);document.releaseCapture();}
up.ns=sp;
down.ns=sp;
down.innerText="<";
up.innerText=">";
sp.tick=tick;
sp.num_text=num_text;
sp.number=defaultNum;
sp.max=max;
sp.min=min;
sp.onNumChange=onNumberChange;
sp.unit=units?units[defaultUnit]:null;
if(units){
var u=newElement("select",null,sp);
u.height=40;
u.ns=sp;
for(var x=0;x<units.length;x++){var op=new Option(units[x]);if(x==defaultUnit)op.checked=true;u.options.add(op);}
u.onchange=function(){NS=event.srcElement.ns;NS.unit=event.srcElement.value;};
}
NS=sp;
return sp;
}
function newElement(eTag,eID,eParent,className,cssText){
var ne=document.createElement(eTag);
if(eParent)eParent.appendChild(ne);
if(eID)ne.id=eID;
if(className)ne.className=className;
if(cssText)ne.style.cssText=cssText;
return ne;
}
<style>
.navPoint {
font-family: Webdings;
font-size:7px;
cursor:hand;
height:10px;
width:20px;
background-color:#C0C0C0;
border:1 outset #ffffff;
}
</style><table CELLPADDING='0' CELLSPACING='0'>
<tr>
<td rowspan=2><input type=text value=0 id="spinner"></td>
<td><input type=button class="navPoint" value="5" onClick="spinner.value++"></td>
</tr>
<tr><td><input type=button class="navPoint" value="6" onClick="spinner.value--"></td>
</tr>
</table>