正确或正确的方法是什么?我对此感到困惑。有人能说得对吗?
3digit <= 4digit
是false
4digit <= 3digit
为true
您可以在此处测试: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();
});
});
答案 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);
答案 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)
$(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;