-2

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

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

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

4

1 回答 1

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
    }
}

我建议也使用 HTML5time输入。如果浏览器不支持该元素(IE、Firefox),它将回退到正常的文本输入。所以它会以任何一种方式工作。

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

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

onsubmit="return validate(this);"

这将起作用,但您仍然需要验证服务器端(PHP、C#、Java、Perl、Ruby 等)以确保它是有效时间。

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

于 2013-02-15T11:51:10.457 回答