[英]How to compare two numbers from a form?
我正在嘗試創建兩個數字的比較/驗證,以便從數據庫中檢索正確的數字。
我正在使用PHP,HTML並從XAMPP數據庫檢索權重的詳細信息以與用戶輸入進行比較。
我使用的是type='number'
因此用戶只能輸入數字。
<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" />
</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.