如何在html文本框中验证时间?

时间:2013-02-15 11:39:10

标签: javascript html validation datetime

我需要验证html文本框(onkeypress)只允许给定格式的时间:

hh:mm // hh - >只允许高达24和mm - >高达59

没有其他文本会限制文本框:始终显示在文本框中使用javascript

1 个答案:

答案 0 :(得分:0)

这很容易。

function validate(form) {
    var hhmm = form.time.value.split(':'); // split hours and minutes
    var hours = parseInt(hhmm[0]); // get hours and parse it to an int
    var minutes = parseInt(hhmm[1]); // get minutes and parse it to an int

    // check if hours or minutes are incorrect
    if(hours < 0 || hours > 24 || minutes < 0 || minutes > 59) {
        alert('NOPE'); // display error
        return false; // stop the form from sending
    }
}

我建议也使用HTML5 time输入。如果浏览器不支持该元素(IE,Firefox),则它会回退到正常的文本输入。所以无论哪种方式都可以。

<input type="time" name="time" />

最后,要在提交表单时运行validate,请添加以下属性:

onsubmit="return validate(this);"

这样可行,但您仍需要验证服务器端(PHP,C#,Java,Perl,Ruby等),以确保它是有效的时间。

如果黑客愿意向您发送无效数据,则他们不必填写表单,但可以将自定义制作的数据直接发送到服务器。因此,您必须(重新)验证它在服务器端。