我需要验证html文本框(onkeypress)只允许给定格式的时间:
hh:mm // hh - >只允许高达24和mm - >高达59
没有其他文本会限制文本框:始终显示在文本框中使用javascript
答案 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等),以确保它是有效的时间。
如果黑客愿意向您发送无效数据,则他们不必填写表单,但可以将自定义制作的数据直接发送到服务器。因此,您必须(重新)验证它在服务器端。