如果x< = y将变为假,则x = 600 y = 1000?

时间:2015-12-22 10:19:05

标签: jquery

正确或正确的方法是什么?我对此感到困惑。有人能说得对吗?

3digit <= 4digitfalse
4digit <= 3digittrue

您可以在此处测试:JSFiddle

<h2></h2>
<form id="send" action="#" method="POST">
    <input type="text" id="x"><br/>
    <input type="text" id="y">
    <input type="submit">
</form>
$(document).ready(function() {
    $('#send').submit(function(){
        var x = $('#x').val();
        var y = $("#y").val();
        if (x <= y) {
            $('h2').html("Done.");
        } else {
            $('h2').html("Sorry,not enough cash.");
        }
        event.preventDefault();
    });
});

6 个答案:

答案 0 :(得分:8)

您需要将值转换为整数。目前你正在比较字符串。另请注意,您需要在传递给处理函数的preventDefault()上调用event。试试这个:

$('#send').submit(function(e) { // the 'e' parameter is the event
    e.preventDefault();
    var x = parseInt($('#x').val(), 10);
    var y = parseInt($("#y").val(), 10);
    $('h2').html(x <= y ? "Done." : "Sorry, not enough cash.");
});

答案 1 :(得分:5)

在您执行任何操作之前将其转换为整数,因为它将字符串或其他内容排序/比较,其中"600"变得大于"1000"

var x = parseInt($('#x').val(), 10);
var y = parseInt($("#y").val(), 10);

工作小提琴:https://jsfiddle.net/h60fva4p/

答案 2 :(得分:3)

请将ParseInt用于两个值:

var x = parseInt($('#x').val(), 10);
var y = parseInt($("#y").val(), 10);

答案 3 :(得分:2)

使用parseInt

var x = parseInt($('#x').val());
var y = parseInt($("#y").val());

如果您希望给定输入的小数值,也可以使用parseFloat()

答案 4 :(得分:2)

使用Number转换为数字

var x = Number($('#x').val());
var y = Number($("#y").val());

答案 5 :(得分:2)

&#13;
&#13;
 $(document).ready(function () {
        $('#send').submit(function () {
            var x = $('#x').val();
            var y = $("#y").val();
            if (parseInt(x) <= parseInt(y)) {
                $('h2').html("Done.");
            }
            else {
                $('h2').html("Sorry,not enough cash.");
            }
            event.preventDefault();
        });
    });
&#13;
&#13;
&#13;