2014-11-01 51 views
0

这是我的JavaScript:时间验证范围形式的MySQL

<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中做什么?

+0

理解你想要的东西并不是很清楚。你能详细说明一下吗? – 2014-11-01 06:13:32

回答

0

您将要验证服务器和客户端的时间。

让我们更改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不验证你的正则表达式,或者不低于最小值的时间,它的视为无效。

现在,最小的传递到JavaScript的使用:

<input type="text" onchange="validateHhMm(this,<?php echo $row['time_coming'];?>);" name="time" id="time" value=" 
     <?php 
     echo $row['time_coming']; 
     ?>"> 

好了,现在的JavaScript进行验证,你需要验证在PHP也是如此。

你没有张贴帖子页面的任何代码,但验证看起来类似于:

if ($_POST['time'] < $your_row['time_coming']) 
    die("Invalid time posted") 
0

既然你有:

<input type="text" onchange="validateHhMm(this);" ... > 

那么你传递一个参考到功能的元素,所以在功能:

var time= $("#time").val(); 

是相同的:

var time = inputField.value; 

如果您有:

var isValid = /^(time)?$/.test(inputField.value); 

你inputField测试的值以文本字符串“时间”,这几乎可以肯定是假的。如果你想测试的时间是一个有效时间(即时间为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 
} 

以上可以在一个单一的正则表达式来完成,但当其他人必须维护代码时,简单性很重要。

一旦输入有效,您就可以比较这些值。