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

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()并传递它,只是为了确保表单进度值的类型是数字 也许,可以尝试类似的方法:

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

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

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

HTML表单 逻辑上,50以下的进度将能够被验证并返回true

然而,它在3、4、5、6、7、8、9上失败,即使这些数字小于50


如何解决此问题?

您的数字可能是字符串形式。您可以尝试使用函数,例如
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);
}

也许对你有帮助

您的数字可能是字符串形式。您可以尝试使用函数,例如
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);
}

也许对你有帮助

要帮助调试,请使用控制台:添加
console.log(frm.progress.value)
控制台日志(frm.重量.值)
作为您的
验证器\u edit
函数的第一行。我已经尝试了@TimMorton建议的方法。该函数能够从数据库和表单上的用户输入检索权重。但是这种比较并没有真正起作用,我不记得javascript是否会轻易地告诉你它是什么类型的变量:string/float/integer。可能是把它当作字符串来比较,而不是数字。如果是这样,则需要将类型更改为浮点或整数。我一时想不起来这个方法是什么;但解决这个问题的方法类似于
parseFloat(frm.progress.value)>parseFloat(frm.weight.value)
。非常感谢@timmorton帮助调试,使用您的控制台:add
console.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);
}