这是我的JavaScript:
<SCRIPT TYPE="text/JavaScript">
function validateHhMm(inputField) {
var time= $("#time").val();
var isValid = /^(time)?$/.test(inputField.value);
if (isValid) {
inputField.style.backgroundColor = '#bfa';
} else {
inputField.style.backgroundColor = '#fba';
}
return isValid;
}
</SCRIPT>
PHP脚本:
<?php
include 'connect.php';
$time = " SELECT * from schedule where id_ship=24";
$show_time = mysql_query($time);
$row = mysql_fetch_array($show_time);
?>
<input type="text" onchange="validateHhMm(this);" name="time" id="time" value="
<?php
echo $row['time_coming'];
?>">
这个时间表
id_ship | time_coming |
----------------------------
24 | 11:10:02 |
我想再次输入表单时间。有效值必须等于或高于11:10:02。11:10:02下的值无效。那么,我应该在JavaScript中做什么呢?
您需要在服务器端和客户端上验证时间。
让我们更改JavaScript函数,使其可以接受最小值。
<SCRIPT TYPE="text/JavaScript">
function validateHhMm(inputField, minValue) {
var time= $("#time").val();
var isValid = /^(time)?$/.test(inputField.value);
if (!isValid || inputField.value < minValue) {
inputField.style.backgroundColor = '#fba';
} else {
inputField.style.backgroundColor = '#bfa';
}
return isValid;
}
</SCRIPT>
因此,如果inputField.value没有验证您的regex,或者不是小于最小值的时间,则它被视为无效。
现在,将最小值传递给JavaScript,使用:
<input type="text" onchange="validateHhMm(this,<?php echo $row['time_coming'];?>);" name="time" id="time" value="
<?php
echo $row['time_coming'];
?>">
好吧,既然JavaScript已经过验证,那么您还需要通过PHP进行验证。
您没有为post页面发布任何代码,但验证看起来类似于:
if ($_POST['time'] < $your_row['time_coming'])
die("Invalid time posted")
假设您有:
<input type="text" onchange="validateHhMm(this);" ... >
然后将对元素的引用传递给函数,因此在函数中:
var time= $("#time").val();
与相同
var time = inputField.value;
您所在的位置:
var isValid = /^(time)?$/.test(inputField.value);
您正在将inputField的值测试为文字字符串"time",这几乎肯定是错误的。如果你想测试时间是否有效(即小时是0到23,分钟是0到59),你可以尝试:
function validateHHMM(s) {
var b = s.split(':');
return /^'d'd:'d'd$/.test(s) && // Check format is nn:nn
b[0] < 24 && b[0] > -1 && // Check hours are 0 to 23 inclusive
b[1] < 60 && b[1] > -1 // Check minutes are 0 to 59 inclusive
}
以上内容可以在一个正则表达式中完成,但当其他人必须维护代码时,简单性很重要。
一旦输入有效,就可以比较这些值。