簡體   English   中英

如何比較表格中的兩個數字?

[英]How to compare two numbers from a form?

我正在嘗試創建兩個數字的比較/驗證,以便從數據庫中檢索正確的數字。

我正在使用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上失敗。

我該如何解決這個問題?

您的數字可能是字符串形式。 您可以嘗試使用Number();類的函數Number(); 在JavaScript中進行傳遞,以確保表單進度的類型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);
}

此鏈接可能會對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM