使用HTML,PHP,Javascript,mySQL。
尝试确认用户必须使用数字在文本字段中以“ - : - ”(例如01:30,10:00等)格式输入时间。
如果以“ - : - ”以外的任何其他格式输入,则会要求用户输入正确的格式。
一旦用户点击提交按钮,它就会在文本字段旁边显示警告/警告消息,而不是弹出窗口。
它是以字符串形式收到的,但我将其保存为mySQL中的“时间”类型以达到我的目标。
我可以做部分,我可以确认该字段不能留空,但却遇到了这个。
function validateForm()
var time =document.forms["entrypage.php"]["eventTime"].value;
if (time==null || time=="")
alert("Please Enter time in --:-- format");
return false;
现在为了实现我想要做的事情,我可以在if子句中加入更多条件,但它似乎效率不高(即x!="00:01"||x!="00:02"||x!="00:03"...etc
。)
可能有很多方法可以做到这一点,但我们非常感谢一些指南/建议。
答案 0 :(得分:0)
为输入标记添加必需属性。这将检查文本框是否为空。
<input type = "text" pattern='\d{2}[:]\d{2}' required>
要检查正确的时间,您可以使用正则表达式
模式化属性答案 1 :(得分:0)
我认为最简单的方法是使用正则表达式。
一些文档/教程: http://www.w3schools.com/jsref/jsref_obj_regexp.asp https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
我认为这应该有效,但它有点像uggly:
if(/[0-9][0-9][:][0-9][0-9]/.test(time)){
alert('correct');
} else {
alert('wrong input!');
}
答案 2 :(得分:0)
要进行全面检查(格式和值),我会使用以下代码:
var time = document.forms["entrypage.php"]["eventTime"].value;
var isValidTime = false;
if (time !== null && /^[0-1][0-9]:[0-5][0-9]$/.test(time)) {
var hourValue = parseInt(time.split(":")[0]);
if (hourValue > 0 && hourValue <= 12) {
isValidTime = true;
}
}
return isValidTime;
要解决这个问题,你基本上有三张支票:
time !== null
- 是否有值(您可能还想检查undefined
)/^[0-1][0-9]:[0-5][0-9]$/.test(time)
- 检查是否有4个数字,第2个和第3个数字之间有冒号(:
),并将第1个数字限制为0或1,第3个数字为0-5。如果您想支持24小时格式,请将第一个字符检查更改为[0-2]
一旦您知道该值与正确的格式匹配,那么您需要检查以确保小时值有效(在所有“19”通过正则表达式检查后,但不是有效的小时值)。有两个步骤:
parseInt(time.split(":")[0]);
- 将时间分成两部分,然后检索小时值,Integer
hourValue > 0 && hourValue <= 12
- 检查以确保该值介于1和12之间。如果您想支持24小时格式,请将第二项检查更改为hourValue <= 24
所以你去吧。 。 。该代码应强制执行格式和输入值的有效性。