Javascript 如何比较表格中的两个数字?
我正在尝试创建两个数字的比较/验证,以便从数据库中检索正确的数字 我正在使用PHP、HTML和从XAMPP数据库中检索权重的详细信息,以与用户输入进行比较 我正在使用Javascript 如何比较表格中的两个数字?,javascript,php,html,forms,Javascript,Php,Html,Forms,我正在尝试创建两个数字的比较/验证,以便从数据库中检索正确的数字 我正在使用PHP、HTML和从XAMPP数据库中检索权重的详细信息,以与用户输入进行比较 我正在使用type='number'以便用户只能输入数字 HTML表单 逻辑上,50以下的进度将能够被验证并返回true 然而,它在3、4、5、6、7、8、9上失败,即使这些数字小于50 如何解决此问题?您的数字可能是字符串形式。您可以尝试使用函数,例如Number()并传递它,只是为了确保表单进度值的类型是数字 也许,可以尝试类似的方法:
type='number'
以便用户只能输入数字
HTML表单
逻辑上,50以下的进度将能够被验证并返回true
然而,它在3、4、5、6、7、8、9上失败,即使这些数字小于50
如何解决此问题?您的数字可能是字符串形式。您可以尝试使用函数,例如
Number()在JavaScript中编写>并传递它,只是为了确保表单进度值的类型是数字
也许,可以尝试类似的方法:
<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);
}
也许对你有帮助 您的数字可能是字符串形式。您可以尝试使用函数,例如Number()在JavaScript中编写>并传递它,只是为了确保表单进度值的类型是数字
也许,可以尝试类似的方法:
<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);
}
也许对你有帮助 要帮助调试,请使用控制台:添加console.log(frm.progress.value)代码>和控制台日志(frm.重量.值)
作为您的验证器\u edit
函数的第一行。我已经尝试了@TimMorton建议的方法。该函数能够从数据库和表单上的用户输入检索权重。但是这种比较并没有真正起作用,我不记得javascript是否会轻易地告诉你它是什么类型的变量:string/float/integer。可能是把它当作字符串来比较,而不是数字。如果是这样,则需要将类型更改为浮点或整数。我一时想不起来这个方法是什么;但解决这个问题的方法类似于parseFloat(frm.progress.value)>parseFloat(frm.weight.value)
。非常感谢@timmorton帮助调试,使用您的控制台:addconsole.log(frm.progress.value)代码>和控制台日志(frm.重量.值)
作为您的验证器\u edit
函数的第一行。我已经尝试了@TimMorton建议的方法。该函数能够从数据库和表单上的用户输入检索权重。但是这种比较并没有真正起作用,我不记得javascript是否会轻易地告诉你它是什么类型的变量:string/float/integer。可能是把它当作字符串来比较,而不是数字。如果是这样,则需要将类型更改为浮点或整数。我一时想不起来这个方法是什么;但解决这个问题的方法类似于parseFloat(frm.progress.value)>parseFloat(frm.weight.value)
。非常感谢你,蒂莫顿
function is_number(form_progress_number) {
return /^\d+$/.test(form_progress_number);
}