微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-如何使文本字段的形式(html,jsp)仅接受dd / mm / yyyy格式,而无需单击提交按钮

我在jsp表单页面中有一个字段,该字段接受“起始日期”和“截止日期”.
现在,我知道可以使用提交按钮来验证此脚本的脚本代码了.
但是我的字段目前接受任何形式的10个字符….例如:28/07/2000或2807 // 2/00
它接受数字和任意数量的/ …

但是我希望该字段接受2个Nos,然后是/,然后是2个Nos,然后是/和年份.
还可以提供页面验证,例如日期为31/01/2000 …则用户键入31后,第二组允许的数字应​​为01,03,05,07 …&等等…
它不应该允许02,04..etc ..
如果日期是29/02 / yyyy,那么yyyy应该只允许跨越leap年…
所有这些都应得到满足,然后只有光标应移动到其他字段&中.无需刷新页面

可以通过ajax实现…
由于输入2个数字后我需要验证,
如果有人有任何想法,如果您能指出正确的方向,我将不胜感激.

顺便说一下,我目前正在使用此代码进行日期验证.

    function checkdate(frmdt,todt){
    var validformat=/^\d{2}\-\d{2}\-\d{4}$/
    var returnval=false
       if(!validformat.test(frmdt.value)){
           alert("Invalid frmdt");
           document.form.frmdt.value="";
   }
       else if(!validformat.test(todt.value)){
       alert("Invalid Date 2");
        document.form.todt.value="";
   }
        else{
        var start = document.form.frmdt.value;
         var end = document.form.todt.value;

         var stDate = new Date(start);
        var enDate = new Date(end);
       var compDate = enDate - stDate;

        if(compDate >= 0)
       return true;
         else
            {
          alert("End date should be greater than start date.");
          return false;
         }
           }
         }

解决方法:

您应该看一下onkeyup事件,如果将验证功能绑定到此事件,它将在每次释放键时运行.您可以使用onkeydown事件将当前输入值存储在变量中,然后使用onkeyup事件运行验证.然后,如果验证无效,则只需编辑验证功能即可将输入重置为按下键时存储在变量中的值.这样,一旦释放键,任何无效的输入都将被撤消.

您目前似乎并没有使用jQuery(即使您已将标签添加到问题中).如果要使用它,可以改用其.keyup().keydown()方法.

除非您要使用服务器端代码进行验证并将结果异步发送回去,否则您将不需要任何AJAX,但这对于这个相当简单的要求似乎有点过头了.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐