(1)一个文本框,当我输入2010的时候自动在后面加上一横杠即为“2010-”,当我输入2010-1是自动为“2010-1-”并且还有一种情况是“2010-A-”可以为1,也可以为12,这个地方怎么控制好?(js控制)(2)一个文本框默认格式是“_ _ _ _- _ _- _ _”只要输入不管其格式(2010-1-25 || 2010-12-20)!,当中的_是看不见的,这里只是留这种占位格式!
只要输入2010就自动跳到“-”后面,然后不管填写1个还是12都行, 大家谁能解决一种将感激不尽!并奉送高分!
只要输入2010就自动跳到“-”后面,然后不管填写1个还是12都行, 大家谁能解决一种将感激不尽!并奉送高分!
http://digitalbush.com/projects/masked-input-plugin/
不知道是否为楼主要的那种
<SCRIPT LANGUAGE="JavaScript">
<!--
var Object;
function test(obj){
Object = obj;
var str = obj.value;
if (str.length == 4) obj.value = obj.value + "-"; //输完4位(年)加"-"
else if (str.length == 6 && parseInt( str.substring(str.length-1), 10) > 1) obj.value = obj.value + "-"; //如果月份的第一位>1,加"-"
else if (str.length == 7 && str.substring(str.length-1) != "-") obj.value = obj.value + "-"; //一共7位(年4+"-"1+月2)且最后不是"-",加"-"
else if (str.length == 6) setTimeout('if (Object.value.length == 6) Object.value = Object.value + "-";',1000); //如果月是1,且1秒钟内未输入月份的第二位,则认为是1月,加"-"
}
//-->
</SCRIPT>情况(2)还没想出来……
现在是根据这个时间来判断是1月 还是10月、11月、12月的
如果输入的是1,且1秒钟内没有再输入,就是1月;如果1秒钟内输入第二个数字了,就是两位数的月份
要是嫌时间短可以把最后一行else if的最后一个参数1000改成2000,就是2秒钟了
我只是做出了个输入的效果,其他的情况还是在提交的时候通过正则验证比较方便吧……下面代码加了验证的部分,填完点验证按钮 <INPUT TYPE="text" NAME="inp" id="inp" onkeyup="test(this)">
<INPUT TYPE="button" VALUE="验证" ONCLICK="check()">
<SCRIPT LANGUAGE="JavaScript">
<!--
var Object;
var inp = document.getElementById("inp")
function test(obj){
Object = obj;
var str = obj.value;
if (str.length == 4) obj.value = obj.value + "-"; //输完4位(年)加"-"
else if (str.length == 6 && parseInt( str.substring(str.length-1), 10) > 1) obj.value = obj.value + "-"; //如果月份的第一位>1,加"-"
else if (str.length == 7 && str.substring(str.length-1) != "-") obj.value = obj.value + "-"; //一共7位(年4+"-"1+月2)且最后不是"-",加"-"
else if (str.length == 6) setTimeout('if (Object.value.length == 6) Object.value = Object.value + "-";',1000); //如果月是1,且1秒钟内未输入月份的第二位,则认为是1月,加"-"
}
function check(){
var reg = /^\d{4}-(1[0-2]|[1-9])-([1-9]|[1,2]\d|3[0,1])$/
/*
上方正则表达式:
年:随意4位数字
月:1开头跟0或1或2;或者1-9中的一位数字
日:1-9中的一位数字;或1或2开头跟一位数字;或3开头,跟0或1(没有根据月份判断)
*/
if (reg.test(inp.value))
{
alert("验证通过");
}
else {
alert("验证不通过!");
inp.select();
}
}
//-->
</SCRIPT>