繁体   English   中英

使用PHP内部的Javascript进行表单验证

[英]Form Validation using Javascript inside PHP

我有一个简单的问题,但无论我尝试什么,我都看不到让它发挥作用。 我在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>

从提交按钮onClick调用该函数:

<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) ?>){

没有骰子......帮助!?!

也许尝试查看页面的来源并检查是否打印出$ qty值。

另外我认为你需要根据原始if语句将or(||)更改为和(&&),否则它将跳过限制检查。

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

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

你有没有尝试过?

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

你只需要将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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM