htm
-----------------------------------------
<style>
.select_edit { behavior: url("comboBox.htc"); width:90px; }
</style>
<SELECT NAME="sel" id="sel" class="select_edit">
<option value=one>one</option>
<option value=two>two</option>
</SELECT>
comboBox.htc
-----------------------------------------
// 描述 : HTML ComboBox 可编辑下拉框
// 版本 : version 1.0
// 作者 : Jiangwf
// 最新更新 : 2004-4-17
// 备注 : 定位ComboBox必须放在一个固定大小的父结点
<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="oncontentready" ONEVENT="boxInit()" />
<PUBLIC:ATTACH EVENT="onchange" ONEVENT="setbox()" />
<PUBLIC:ATTACH FOR="window" EVENT="onresize" ONEVENT="setPosition()" />
<PUBLIC:METHOD NAME="setPosition"/><script language="JavaScript">
var selectBox, oSpan, oSpanSelect, oSpanInput, oInput;
var selectRect;
var oSpan_left, oSpan_top;
var LMargin = 0;//element.document.body.leftMargin;
var TMargin = 0;//element.document.body.topMargin;function boxInit()
{
var oLeft, oTop, oWidth, oHeight; //创建对象
selectBox = element;
oSpan = element.document.createElement("span");
oSpanSelect = element.document.createElement("span");
oSpanInput = element.document.createElement("span");
oInput = element.document.createElement("input"); oLeft = getPositionLeft(selectBox) + 1;
oTop = getPositionTop(selectBox) + 1;
oWidth = element.offsetWidth;
oHeight = element.offsetHeight;
oSpanSelect.style.cssText = "position:absolute; top:"+(oTop+1)+"px; left:"+oLeft+"px; width:"+oWidth+"px; font-size:9pt;clip:rect(0 "+oWidth+" 21 "+(oWidth-18)+");";
oSpanInput.style.cssText = "position:absolute; top:"+(oTop)+"px; left:"+oLeft+"px;";
oInput.style.cssText = "width:"+(oWidth-17)+"px; font-size:12px; ime-mode:disabled";
oInput.id = element.id + "_input";
selectBox.insertAdjacentElement("beforeBegin",oSpan);
element.document.body.appendChild(oSpanSelect);
oSpanSelect.appendChild(selectBox);
oSpan.appendChild(oSpanSelect);
element.document.body.appendChild(oSpanInput);
oSpanInput.appendChild(oInput);
oSpan.appendChild(oSpanInput);
set_oSpan_postion();
setbox();
}function setbox()
{
oInput.value = selectBox.options[selectBox.selectedIndex].text;
}function setPosition()
{
var diff_left = getPositionLeft(oSpan) - oSpan_left;
var diff_top = getPositionTop(oSpan) - oSpan_top; oSpanSelect.style.left = parseInt(oSpanSelect.style.left) + diff_left;
oSpanInput.style.left = parseInt(oSpanInput.style.left) + diff_left;
oSpanSelect.style.top = parseInt(oSpanSelect.style.top) + diff_top;
oSpanInput.style.top = parseInt(oSpanInput.style.top) + diff_top;
set_oSpan_postion();
}function getPositionLeft(o)
{
var obj = o;
var left = 0;
while(obj.tagName.toLowerCase() != "body")
{
left += obj.offsetLeft;
obj = obj.offsetParent;
}
left += parseInt(LMargin, 10);
return left;
}function getPositionTop(o)
{
var obj = o;
var top = 0;
while(obj.tagName.toLowerCase() != "body")
{
top += obj.offsetTop;
obj = obj.offsetParent;
}
top += parseInt(TMargin, 10);
return top;
}function set_oSpan_postion()
{
oSpan_left = getPositionLeft(oSpan);
oSpan_top = getPositionTop(oSpan);
}
</script>
</PUBLIC:COMPONENT>
-----------------------------------------
<style>
.select_edit { behavior: url("comboBox.htc"); width:90px; }
</style>
<SELECT NAME="sel" id="sel" class="select_edit">
<option value=one>one</option>
<option value=two>two</option>
</SELECT>
comboBox.htc
-----------------------------------------
// 描述 : HTML ComboBox 可编辑下拉框
// 版本 : version 1.0
// 作者 : Jiangwf
// 最新更新 : 2004-4-17
// 备注 : 定位ComboBox必须放在一个固定大小的父结点
<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="oncontentready" ONEVENT="boxInit()" />
<PUBLIC:ATTACH EVENT="onchange" ONEVENT="setbox()" />
<PUBLIC:ATTACH FOR="window" EVENT="onresize" ONEVENT="setPosition()" />
<PUBLIC:METHOD NAME="setPosition"/><script language="JavaScript">
var selectBox, oSpan, oSpanSelect, oSpanInput, oInput;
var selectRect;
var oSpan_left, oSpan_top;
var LMargin = 0;//element.document.body.leftMargin;
var TMargin = 0;//element.document.body.topMargin;function boxInit()
{
var oLeft, oTop, oWidth, oHeight; //创建对象
selectBox = element;
oSpan = element.document.createElement("span");
oSpanSelect = element.document.createElement("span");
oSpanInput = element.document.createElement("span");
oInput = element.document.createElement("input"); oLeft = getPositionLeft(selectBox) + 1;
oTop = getPositionTop(selectBox) + 1;
oWidth = element.offsetWidth;
oHeight = element.offsetHeight;
oSpanSelect.style.cssText = "position:absolute; top:"+(oTop+1)+"px; left:"+oLeft+"px; width:"+oWidth+"px; font-size:9pt;clip:rect(0 "+oWidth+" 21 "+(oWidth-18)+");";
oSpanInput.style.cssText = "position:absolute; top:"+(oTop)+"px; left:"+oLeft+"px;";
oInput.style.cssText = "width:"+(oWidth-17)+"px; font-size:12px; ime-mode:disabled";
oInput.id = element.id + "_input";
selectBox.insertAdjacentElement("beforeBegin",oSpan);
element.document.body.appendChild(oSpanSelect);
oSpanSelect.appendChild(selectBox);
oSpan.appendChild(oSpanSelect);
element.document.body.appendChild(oSpanInput);
oSpanInput.appendChild(oInput);
oSpan.appendChild(oSpanInput);
set_oSpan_postion();
setbox();
}function setbox()
{
oInput.value = selectBox.options[selectBox.selectedIndex].text;
}function setPosition()
{
var diff_left = getPositionLeft(oSpan) - oSpan_left;
var diff_top = getPositionTop(oSpan) - oSpan_top; oSpanSelect.style.left = parseInt(oSpanSelect.style.left) + diff_left;
oSpanInput.style.left = parseInt(oSpanInput.style.left) + diff_left;
oSpanSelect.style.top = parseInt(oSpanSelect.style.top) + diff_top;
oSpanInput.style.top = parseInt(oSpanInput.style.top) + diff_top;
set_oSpan_postion();
}function getPositionLeft(o)
{
var obj = o;
var left = 0;
while(obj.tagName.toLowerCase() != "body")
{
left += obj.offsetLeft;
obj = obj.offsetParent;
}
left += parseInt(LMargin, 10);
return left;
}function getPositionTop(o)
{
var obj = o;
var top = 0;
while(obj.tagName.toLowerCase() != "body")
{
top += obj.offsetTop;
obj = obj.offsetParent;
}
top += parseInt(TMargin, 10);
return top;
}function set_oSpan_postion()
{
oSpan_left = getPositionLeft(oSpan);
oSpan_top = getPositionTop(oSpan);
}
</script>
</PUBLIC:COMPONENT>
function isCardNo(s){
var ma=null;
var s1=trim(s);
if(s1.length==15){
ma=s.match(/^\d{6}(\d{6})\d{3}$/);
}else if(s1.length==18){
ma=s.match(/^\d{6}(\d{8})\d{4}$/);
}
return ma!=null && isDate(ma[2]);
}function isDate(s, isQuery, d1, d2){
if(s==null)return false;
// YYMMDD,YYYYMMDD
var matchArray=trim(s).match(/^((\d{2}){1,2})(\d{2})(\d{2})$/);
if(matchArray==null)return false;
var year=matchArray[1];
var month=matchArray[3];
var day=matchArray[4];
if((month-12)>0 || (month-1)<0)return false;
if((day-31)>0 ||(day-1)<0)return false;
if((day - getDays(year,month))>0)return false;
return true;
}function getDays(year,month){
if( (month==1)
|| (month==3)
|| (month==5)
|| (month==7)
|| (month==8)
|| (month==10)
|| (month==12))return 31;
if(month==4 || month==6 || month==9 || month==11)return 30;
if(year%400==0)return 29;
if(year%100==0)return 28;
if(year%4==0)return 29;
return 28;
}
function ltrim(s,c){
var sTemp=s;
if(s==null)return "";
if(c==null)c=' ';
while(sTemp.substring(0,1)==c){
sTemp=sTemp.substring(1);
}
return sTemp;
}function rtrim(s,c){
var sTemp=s;
if(s==null)return "";
if(c==null)c=' ';
while(sTemp.substring(sTemp.length-2,sTemp.length-1)==c){
sTemp=sTemp.substring(0,sTemp.length-2);
}
return sTemp;
}function trim(s,c){
return rtrim(ltrim(s,c),c);
}
1 确定身份正的位数
2 单单对于客户输入的数值是不能更准确的判断他的身份正是否正确
因为:身份证的前4为代表他属于哪个市
而第6-14代表出生日期
最后一位代表性别
3 要通过他的其他资料来进行对比才勉强可以
<script>
function aa()
var a,d,e
e=document.form1.text2.value
if (e=="男"){
e="1"
}
else{
e="0"
}
a=document.form1.text1.value
d=document.form1.text2.value
e=document.form1.text3.value
if (d.substrint(0,3)==a){
if (d.substring(6,8)==b){
if (d.substring(17,1)==e{
document.alert("身份证号正确")
}
else{
document.alert("不正确")
}
}
}
}
</script>
<body>
<form name="from1" action="">
<input type="text" name="text1">
你住的城市
<input type="text" name="text2">
<pre>
填写你的生日 如20000101
____--__
年 月 日
</pre>
<input type="text" name="text3">
你的 性别
<input type="submit" name="submit1" onclick="aa()">
</form>
function isIdCardNo(num)
{
if (isNaN(num)) {alert("输入的不是数字!"); return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
else if (len == 18)
re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
else {alert("输入的数字位数不对!"); return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
}
return true;
}