我正在尝试创建两个数字的比较/验证,以便从数据库中检索正确的数字。
我正在使用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上失败。
我该如何解决这个问题?
答案 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可能会对您有所帮助。