如何比较表格中的两个数字?

时间:2019-04-29 01:51:38

标签: javascript php html forms

我正在尝试创建两个数字的比较/验证,以便从数据库中检索正确的数字。

我正在使用PHP,HTML并从XAMPP数据库检索重量的详细信息以与用户输入进行比较。

我正在使用type='number',以便用户只能输入数字。

HTML表单

<form action="" method="POST" onSubmit= "return Validator_edit(this)">

            <table class="midTable" align="center" cellpadding="3" cellspacing="3" enctype="multipart/form-data" >
            <tr>

            <tr>
            <th align="right" >Weight:</th>
            <td><input type="number" size="20" name="weight" id="weight" value="<?php echo $weight ?>" disabled="disabled"> * Weight that you have set previously <br/></td>
            </tr>

            <tr>
            <th align="right" >Progress:</th>
            <td><input type="number" name="progress" value="<?php echo $progress ?>" id="progress" > 
            * NOTE : Progress must NOT exceed the weight you have set .</strong><br></h3></td>
            </tr>

            <tr >
            <td colspan='2' align='center'><input type="submit" value="update" name="submit" />&nbsp; 
            </tr>


            </table>
        </form>

验证表格

 <script type="text/javascript" language="javascript">

    function Validator_edit(frm){

            if (frm.progress.value=="")
            { 
                alert("progess must not be empty");
                frm.progress.focus();
                return false;
            }

            if (frm.progress.value > frm.weight.value )
            {   

                alert(" You have exceed the weight.");
                frm.progress.focus();
                return false;
            }   
     }

    </script>

由于某种原因,它能够验证“一些”数字。例如:我已经设置:

 Weight = 50

逻辑上低于50的进步将能够得到验证并返回true。

但是,即使这些数字小于50,它也会在3、4、5、6、7、8、9上失败。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的数字可能是字符串形式。您可以尝试在JavaScript中使用诸如Number();之类的函数并将其传递给该函数,以确保表单进度值的类型为 number

也许,尝试类似的事情:

<script type="text/javascript" language="javascript">
    function Validator_edit(frm){
            if (frm.progress.value=="")
            { 
                alert("progess must not be empty");
                frm.progress.focus();
                return false;
            }

            if (Number(frm.progress.value) > Number(frm.weight.value) )
            {   

                alert(" You have exceed the weight.");
                frm.progress.focus();
                return false;
            }   
     }
</script>

或者您可以通过正则表达式传递它,也许类似于:

function is_number(form_progress_number) {
    return /^\d+$/.test(form_progress_number);
}

This link可能会对您有所帮助。