【问题标题】:How to validate the time in html text box?如何验证html文本框中的时间?
【发布时间】:2013-02-15 11:39:10
【问题描述】:

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

hh:mm // hh--> 只允许最大 24 和 mm --> 最大 59

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

【问题讨论】:

    标签: javascript html validation datetime


    【解决方案1】:

    这很容易。

    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 等)以确保它是有效时间。

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

    【讨论】:

    • 我需要限制按键的值
    • @user279 那是在浪费时间和精力,更不用说性能了,而且可能会让用户感到沮丧。
    • k @tim。如何在同一文本框中单独获取 hh:mm
    • ...?你不必为此做任何特别的事情......我提供的脚本会为你工作。
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 2016-10-09
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多