代码之家  ›  专栏  ›  技术社区  ›  Mikey1980

在php中使用javascript进行表单验证

  •  3
  • Mikey1980  · 技术社区  · 14 年前

    我有一个简单的问题,但不管我怎么努力,我都看不到它能起作用。我在php页面上有一个表单,我需要验证表单上的qty值,使其不超过$qty(从mysql中提取的值),并且不小于零。听起来很简单——嗯,希望是……哈哈!我让它检查这个值是否是数字,在我试图让它工作时,我甚至弄坏了它——一个不好的早晨..哈哈!

    这里是我的javascript fn的一小部分:

    <script type='text/javascript'>
        function checkQty(elem){
            var numericExpression = /^[0-9]+$/;
            if(elem.value.match(numericExpression)){
                    return true;
                }else{
                    alert("Quantity for RMA must be greater than zero and cannot be more than the original order!");
                    elem.focus();
                    return false;
            }
        }
        </script>
    

    从Submit按钮调用函数,单击:

    <input type="submit" name="submit" onclick="checkQty(document.getElementById('qty')";">  
    

    我试过了:

    var numericExpression = /^[0-9]+$/;
    if(elem.value.match(numericExpression) || elem.value < 0 || elem.value > <? int($qty) ?>){
    

    没有骰子…救命!?!

    3 回复  |  直到 14 年前
        1
  •  1
  •   Neal Donnan    14 年前

    也许可以尝试查看页面的源代码,并检查是否打印出了$qty值。

    另外,我认为您需要在原始if语句的基础上将or()更改为and(&),否则它将跳过限制检查。

    还要回显变量以将其打印出来。

    var numericExpression = /^[0-9]+$/;
    if(elem.value.match(numericExpression) && elem.value < 0 && elem.value > <? echo $qty ?>){
    
        2
  •  0
  •   ant    14 年前

    你试过了吗?

      <input type="submit" name="submit" onclick="return checkQty(document.getElementById('qty'));"> 
    
        3
  •  0
  •   symcbean    14 年前

    您只需要让php值对javascript可用,例如。

     <script type='text/javascript'>
     function checkQty(elem, max_value){
        if(parseInt(elem.value)>0
           && (parseInt(elem.value)<=max_value)){
                return true;
        }else{
                alert("Quantity for RMA must be greater than zero and less than original order!");
                elem.focus();
                return false;
        }
     }
     </script>
     ...
     <?php
         $max_value=(integer)method_of_fetching_max_value();
         print "<input type='submit' name='submit' 
                 onclick='checkQty(document.getElementById(\"qty\", $max_value))'>  
         ";
     ?>
    

    C.