日期:2014-05-16  浏览次数:20403 次

JS判断文本框输入值,并给出提示(不用jQuery实现)
1)界面:给出一个文本框,给出一个按钮;
2)功能:当文本框输入为空时,给出当前的年月日(格式为:20120920)
当文本框输入为某值时,输出该值(值定义为8位数字,如:12345678)
3)功能:判断若该值大于当前日期数值,弹出提示:大了
  若该值小于当前日期数值,弹出提示:小了
若该值等于当前日期数值,弹出提示:正好

注:小弟1、2步都可以袜,在第3步时思考几日,不太明白,请高手指点,谢谢了。
  不用jQuery实现,单个html页面即可调试的,多谢。

------解决方案--------------------
int a = Integer,parseInt(年月日)
int b = Integer,parseInt(document.form class名.文本框名.value)
if(a<b){
alert("小了");
}slse if(a>b){
alert("大了");
}else{
alert("正好");
}
------解决方案--------------------
<script type="text/javascript">
function test(a){
var x=a.value;
var d=new Date(2012,8,21);
if(x==""){
a.value=20120821;
}else{
alert(m+" "+n+" "+k);
var y=new Date(+x.substring(0,4),(+x.substring(4,6))-1,+x.substring(6),0,0,0);
var z=d.getTime();
var m=y.getTime();
if(z>m){
a.value="小了";
}else if(z<m){
a.value="大了";
}else{
a.value="正好";
}
}
}
</script>
</head>

<body>
<input type="text" onblur="test(this)">
</body>
</html>
说下 因为newDate().getTime()是精确到毫秒的 而你给的时间只到天 所以很难正好 你可以在获得当前时间后截取到天后在比较试试
------解决方案--------------------
额 你这不是日期 咋能输入12345678这种?不做日期判断?
------解决方案--------------------
应该是没有输入值直接点按钮,输入框输出当前日期如:20120909
当输入数字不够8位时,提醒必须输入8位数,
当够了8位数时,第一步是判断这8位数是不是合法日期,总不能把99999999当日期比较吧。
当输入是8位日期格式时,直接比数字大小即可(没必要再换回日期比较了)
HTML code
日期: <input type="text" id="dd" maxlength="8" size="10"/> <input type="button" onclick="test()" value="确定" />
<script type="text/javascript">
    function test(){
        var v=document.getElementById("dd").value;
        if(v==""){
            document.getElementById("dd").value=get_date("");
        }else if(v.length!=8){
            alert("请输入8位数!");
        }else if(!get_date(v)){
            alert("你输入的日期有误!")
        }else{
            var i=get_date("");
            if(v>i){
                alert("大了");
            }else if(v<i){
                alert("小了");
            }else{
                alert("正好");
            }
        }
    }
    function get_date(v){
        //功能:1.返回当前日期;2.判断是不是有效日期;
        var t = new Date();
        if(v!="")t = new Date(v.substring(0,4),v.substring(4,6)-1,v.substring(6,8));
        var sj= t.getFullYear()+("0"+(t.getMonth()+1)).slice(-2)+("0"+t.getDate()).slice(-2);
        if(v!=""){
            return v==sj;
        }else{
            return sj;
        }
    }
</script>

------解决方案--------------------
4楼正解 每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分