如何在Javascript中对两个输入值使用比较运算符
我想比较两个输入值,只需在javascript中尝试一下,但效果不好。我正在使用以下代码如何在Javascript中对两个输入值使用比较运算符,javascript,Javascript,我想比较两个输入值,只需在javascript中尝试一下,但效果不好。我正在使用以下代码 function check_closing() { var opening = $('#opening').val(); var closing = $('#closing').val(); if(opening > closing) { alert('Opening is greater than Closing. Please enter the correct value');
function check_closing()
{
var opening = $('#opening').val();
var closing = $('#closing').val();
if(opening > closing)
{
alert('Opening is greater than Closing. Please enter the correct value');
$('#closing').val('');
}
}
如果打开值输入=8541,关闭值like=8241,则工作正常,但如果关闭值为954,则不工作。请帮忙
提前感谢。输入元素的值始终是字符串。要将它们作为数字进行比较,必须将它们转换为数字。您可以通过以下方式实现:
parseInt,如果它们是整数,并且您希望指定基数并在第一个非数字字符处停止解析
例如:
var opening = parseInt($('#opening').val(), 10);
// This is the number base, usually 10 ---^^^^
var opening = parseFloat($('#opening').val()); // Always base 10
var opening = +$('#opening').val();
// ^---- it's hiding here
如果它们是小数,则解析浮点
例如:
var opening = parseInt($('#opening').val(), 10);
// This is the number base, usually 10 ---^^^^
var opening = parseFloat($('#opening').val()); // Always base 10
var opening = +$('#opening').val();
// ^---- it's hiding here
如果您想让JavaScript猜测基数,则输入+,如果有非数字字符,则输入NaN
例如:
var opening = parseInt($('#opening').val(), 10);
// This is the number base, usually 10 ---^^^^
var opening = parseFloat($('#opening').val()); // Always base 10
var opening = +$('#opening').val();
// ^---- it's hiding here
…和其他一些。输入元素的值始终是字符串。要将它们作为数字进行比较,必须将它们转换为数字。您可以通过以下方式实现:
parseInt,如果它们是整数,并且您希望指定基数并在第一个非数字字符处停止解析
例如:
var opening = parseInt($('#opening').val(), 10);
// This is the number base, usually 10 ---^^^^
var opening = parseFloat($('#opening').val()); // Always base 10
var opening = +$('#opening').val();
// ^---- it's hiding here
如果它们是小数,则解析浮点
例如:
var opening = parseInt($('#opening').val(), 10);
// This is the number base, usually 10 ---^^^^
var opening = parseFloat($('#opening').val()); // Always base 10
var opening = +$('#opening').val();
// ^---- it's hiding here
如果您想让JavaScript猜测基数,则输入+,如果有非数字字符,则输入NaN
例如:
var opening = parseInt($('#opening').val(), 10);
// This is the number base, usually 10 ---^^^^
var opening = parseFloat($('#opening').val()); // Always base 10
var opening = +$('#opening').val();
// ^---- it's hiding here
…和其他一些。您正在比较字符串而不是整数,因此需要将字符串转换为整数。因为作为字符串,'8541'>'8241'
>>>'8541' > '8241'
true
>>>'954' > '8241'
true
>>>8541 > 8241
true
>>>954 > 8241
false
所以你想要:
function check_closing()
{
var opening = parseInt($('#opening').val());
var closing = parseInt($('#closing').val());
if(opening > closing)
{
alert('Opening is greater than Closing. Please enter the correct value');
$('#closing').val('');
}
}
为了进一步解释为什么会发生这种情况,如果您感兴趣的话:字符串是逐字符比较的,iirc。因此,“9”大于“8”,但“8241”小于“8541”,因为“2”小于“5”。您正在比较字符串而不是整数,因此需要将字符串转换为整数。因为作为字符串,'8541'>'8241'
>>>'8541' > '8241'
true
>>>'954' > '8241'
true
>>>8541 > 8241
true
>>>954 > 8241
false
所以你想要:
function check_closing()
{
var opening = parseInt($('#opening').val());
var closing = parseInt($('#closing').val());
if(opening > closing)
{
alert('Opening is greater than Closing. Please enter the correct value');
$('#closing').val('');
}
}
为了进一步解释为什么会发生这种情况,如果您感兴趣的话:字符串是逐字符比较的,iirc。因此,“9”大于“8”,但“8241”小于“8541”,因为“2”小于“5”。在比较之前将字符串转换为整数:
function check_closing()
{
var opening = $('#opening').val();
var closing = $('#closing').val();
if(parseInt(opening) > parseInt(closing))
{
alert('Opening is greater than Closing. Please enter the correct value');
$('#closing').val('');
}
}
比较前将字符串转换为整数:
function check_closing()
{
var opening = $('#opening').val();
var closing = $('#closing').val();
if(parseInt(opening) > parseInt(closing))
{
alert('Opening is greater than Closing. Please enter the correct value');
$('#closing').val('');
}
}
首先,您需要将字符串转换为整数
首先,您需要将字符串转换为整数
你是说'954'>'8241',因为作为字符串,'8541'>'8241'。。。也是数字。是的,哇。现在更新。这两条评论都是这样说的。我本来没有得到它。我的错。你是说'954'>'8241'因为作为字符串,'8541'>'8241'。。。也是数字。是的,哇。现在更新。这两条评论都是这样说的。我本来没有得到它。我的错。